Кнопочный бот — это диалог: вопрос, ответ, три кнопки. Mini App — это сайт, живущий внутри Telegram: скролл, фильтры, корзина, карта, анимации. Пользователь не устанавливает ничего и не регистрируется — Telegram сам передаёт приложению его личность. Разберём, когда диалога хватает, а когда нужен полноценный интерфейс.
Что такое Mini App технически
Обычное веб-приложение (у нас — фронтенд + Django API), открывающееся в окне поверх чата. Telegram даёт ему:
- авторизацию без паролей — приложение сразу знает, кто пользователь;
- нативные платежи — оплата через Telegram, включая Stars;
- интеграцию с чатом — кнопка в меню бота, шаринг, уведомления через того же бота.
То есть Mini App не заменяет бота, а дополняет: бот остаётся каналом уведомлений и точкой входа, Mini App — витриной.
Когда хватает кнопочного бота
- Сценарий линейный: выбрал услугу → выбрал время → подтвердил. Классический пример — бот записи.
- Позиций в каталоге до ~100.
- Главная ценность — уведомления и диалог, не браузинг.
- Бюджет ограничен: кнопочный бот — 20–60 часов, Mini App — 80–160.
Кнопки — это дёшево и работает. Не дайте продать вам Mini App там, где он не нужен.
Когда нужен Mini App
- Большой каталог. Листать 500 товаров кнопками «вперёд/назад» — пытка. Скролл с фильтрами — норма. Подробно про магазины — в разборе бота-магазина.
- Сложный выбор. Конфигуратор, календарь с ценами по дням, выбор места на схеме зала — в диалоге это не живёт.
- Визуальный продукт. Еда, одежда, недвижимость — продают фотографии сеткой, а не по одной в сообщении.
- Данные и графики. Личный кабинет с историей, статистика, дашборд.
Практическое правило: если вы рисуете сценарий бота и на третьем шаге появляется «а тут пользователь сравнивает варианты» — это Mini App.
Почему 80–160 часов
Mini App — это два приложения вместо одного:
- Фронтенд — интерфейс со всеми состояниями: загрузка, пустой каталог, нет сети, тема Telegram (светлая/тёмная — да, это надо поддерживать).
- Бэкенд — API, база, права, платежи, интеграции с вашими системами.
Плюс валидация данных от Telegram (подпись initData — обязательная защита, без неё любой может прикинуться любым пользователем), плюс бот-компаньон для уведомлений.
Верхняя граница (160+) — это каталоги с синхронизацией из 1С, программы лояльности, высокие нагрузки.
Гибрид: старт с бота, апгрейд до Mini App
Рабочая стратегия для ограниченного бюджета: первая версия — кнопочный бот с ядром сценария, проверка спроса. Спрос есть → Mini App поверх той же базы и того же API. Бэкенд переиспользуется, выброшенной работы почти нет — если API с самого начала проектировался как API, а не как «внутренности бота». Об этом стоит спросить подрядчика до старта — вопросы для проверки собраны в чек-листе заказчика.