Запрос на «бота в телеграм» почти всегда звучит одинаково: нужен бот, который отвечает на несколько вопросов. То, что реально приходится собирать, как только на бота начинают полагаться живые люди, — это небольшая бэкенд-система: база данных, фоновые задачи, админка и достаточная надёжность, чтобы перезапуск сервера прошёл незамеченным. Разработка Telegram-ботов на заказ — это как раз второе, а не первое, и именно на этой границе большинство конструкторов ботов тихо останавливаются.
Из чего на самом деле состоит бот в проде
Все боты в этом портфолио стоят на одной базе: Python и aiogram 3 на стороне телеграма, асинхронный слой SQLAlchemy для хранения и деплой, который переживает перезагрузку сервера без ручного перезапуска. SQLite хватает одной команде или одной семье; когда данные перерастают один процесс, тот же код переезжает на PostgreSQL без переписывания. Вебхуки заменяют polling там, где важен аптайм, а systemd-юнит или Docker-контейнер держат процесс живым и перезапускаемым по команде. Ничего из этого не видно в демо за пять минут — это становится видно спустя три месяца, когда бот всё ещё работает, а про него уже никто не вспоминает.
Три разные задачи, одна архитектура
- Закрытый покерный клуб работает на полноценном движке No-Limit Hold'em внутри Telegram Mini App — дилер, блайнды, шоудаун, столы по приглашениям — и сам сводит финансовый учёт между игроками после каждой сессии. От старта до рабочего стола прошло 9 дней.
- Лид-бот для витрины на OLX перехватывает каждое обращение по диплинку из объявления, ведёт его по стадиям и складывает в одну базу вместо того, чтобы терять по разным чатам. Бот принимает лиды с первого дня подключения.
- Бот-смотритель небольшого флота проектов в проде показывает статус каждого сервиса с задержкой в миллисекундах, перезапускает упавший сервис одной командой, ведёт очередь задач для ИИ-агентов с разными ролями и делает ночные резервные копии между серверами. Собран за 8 дней.
Что реально получает заказчик
Окно чата — это видимая часть; под ней всегда стоит настоящий бэкенд, которым владеет заказчик, а не чёрный ящик на чужой платформе конструктора ботов. Именно этот бэкенд делает возможными более сложные запросы: трекер приёма лекарств строит полное расписание по одной фотографии упаковки и напоминает, пока не наберётся серия дней без пропуска, а семейный органайзер здоровья держит основные сценарии замороженными регрессионными тестами, чтобы новая функция незаметно не сломала ту, на которую полагаются каждый день. Оба были в проде в течение двух недель с первого разговора.
Как устроена работа
Объём задачи всегда рождается из короткого разговора, а не из шаблона. Опишите задачу в чате, получите ответ сразу, а набросок системы с оценкой цены закроет границы задачи до того, как зафиксируется цена. Сроки выше — не обещание для другого бота: объём задачи решает всё, — но они показывают темп, когда архитектуру не нужно изобретать заново.
Почему это редко помещается в конструктор ботов
Конструкторы ботов без кода хороши для одного сценария из нескольких шагов. Они перестают быть хороши, как только боту нужна настоящая схема базы данных, фоновые задачи, которые живут дольше одного HTTP-запроса, или админка, которой реально может пользоваться нетехнический человек, чтобы посмотреть, что произошло за неделю. Каждому примеру выше был нужен хотя бы один из этих трёх пунктов — обычно все три — с первого дня, поэтому они и собраны как обычные бэкенд-сервисы с фронтом в Telegram, а не как сценарии внутри чужой платформы.
Ту же логику видно и в мелочах: лид-бот для OLX ведёт собственный rate-limiter, чтобы всплеск обращений не завалил очередь, а бот-смотритель делает резервные копии каждую ночь с перекрёстной копией между серверами — на случай, если ляжет не только сам сервис, но и сервер, на котором он стоял. Ни то, ни другое не видно в самом чате с ботом, но именно из таких решений и складывается разница между сценарием на выходные и системой, за которую не приходится волноваться месяцами.
Нужен бот, который делает больше, чем отвечает на частые вопросы? Опишите задачу в чате — менеджер FROST ответит сразу.