У вас Telegram-бот с 50 000 пользователей — вот как выпустить его как приложение за 6 недель

Коротко. Telegram-бот с реальной базой пользователей и бэкендом за ним можно превратить в выпущенное приложение для iOS и Android примерно за шесть недель — не потому что работа тривиальна, а потому что сложный продуктовый вопрос (нужно ли это кому-то?) уже решён. Этот пост — понедельный план: что и когда строится, куда на самом деле уходят шесть недель, как мигрировать 50 000 пользователей не потеряв их, и что именно превращает шесть недель в четыре месяца. Если хотите сначала оценить себя — на странице услуги «из бота в приложение» есть чек-лист готовности.
Если нужен только график — переходите к плану на шесть недель.
Исходная точка
Представьте свою позицию — она хорошая. Год-два назад вы запустили Telegram-бота, чтобы проверить идею. Сработало. Теперь у вас 50 000 пользователей, которые его открывают, используют и иногда платят. Бот делает что-то настоящее: фитнес-коуч, AI-ассистент, финансовый трекер, языковой репетитор, маркетплейс — категория для этого поста неважна. Важно, что у вас есть product-market fit на платформе, которой вы не владеете.
И платформа начинает мешать. Пользователи просят то, чего бот не умеет. Вы не можете отправить push так, чтобы он не утонул в приглушённом канале. Вы не можете брать оплату так, как хотите. Изменение в Telegram Bot API сломало флоу в прошлом квартале, и вы потратили выходные на тушение пожара. Вы успешны вопреки платформе и чувствуете потолок.
Поэтому вам нужно приложение. Вопрос, который задаёт каждый основатель в этой позиции, один и тот же: сколько времени и как не потерять 50 000 пользователей, которые уже есть?
Честный ответ для большого класса ботов — шесть недель до выпущенного приложения плюс постепенная миграция, которая идёт параллельно и завершается, когда вы сами решите. Вот почему эта цифра реалистична и куда именно уходит время.
Разбор ниже — собирательный: это план, который мы по частям выполняли на реальных чат-ориентированных Flutter-проектах вроде Arcana (клиент стримингового AI-чата, выпущен за три недели) и YouMi (приложение для обмена сообщениями в реальном времени, стабилизированное за две). Ни один клиент не является «тем самым ботом с 50k», но каждый шаг здесь — то, что мы действительно делали.
Почему шесть недель реалистичны (и когда нет)
Шесть недель звучат агрессивно, пока не вспомнишь, чего вы не делаете.
Вы не открываете продукт заново. Вы не проводите исследование пользователей, чтобы понять, что строить — ваш бот это два года исследований. Вы не проектируете новую модель взаимодействия — разговорный флоу уже работает, и большую его часть вы сохраните. Вы не проверяете спрос — 50 000 человек уже его подтвердили.
Остаётся исполнение по известной спецификации — и именно это сжимается. Единая кодовая база на Flutter выходит сразу на iOS и Android (мы писали, почему одна кодовая база лучше двух нативных сборок), так что вы не платите за одну и ту же работу дважды. Бэкенд по большей части существует. Список функций конечен и уже проверен в бою.
Шесть недель реалистичны, когда:
- Бот уже общается с серверным API, а не только с серверами Telegram.
- Набор функций — это чат плюс несколько экранов, а не разросшийся супер-апп.
- Есть один человек, принимающий решения, который может согласовывать дизайн и объём без комитета.
- Вы готовы выпустить сфокусированную v1 и добавить «длинный хвост» после запуска.
Шесть недель не реалистичны, когда у бота нет отдельного бэкенда и вся логика живёт в обработчиках (добавьте 2–3 недели на выделение API), когда нужна дизайн-система с нуля или когда «паритет» втайне означает пятьдесят пограничных команд, каждой из которых нужен свой экран. К этому вернёмся в разделе что срывает сроки.
План на шесть недель, по неделям
Вот график, по которому мы работаем. Недели пересекаются сильнее, чем подсказывает этот линейный список — дизайн начинается, пока завершается аудит, бумаги для сторов стартуют в первый день — но критический путь выглядит так.
Неделя 1 — Аудит и маппинг функций
Мы проходим бота команда за командой, сценарий за сценарием, и записываем всё, что он делает. Каждый /command, каждую инлайн-клавиатуру, каждый многошаговый диалог, каждую интеграцию, каждый платёжный путь. Это становится спецификацией — и это самый важный артефакт во всём проекте.
Затем каждую возможность бота сопоставляем с эквивалентом в приложении и раскладываем по трём корзинам:
- Оставить чатом. Разговорное ядро остаётся разговорным — это то, что знают ваши пользователи.
- Повысить до экрана. То, что вы впихнули в чат, потому что бот вынуждал (настройки, история, дашборды, профили), становится настоящими экранами.
- Вырезать из v1. Команды, которыми пользуются 2% пользователей. Они идут в список «после запуска», а не в критический путь.
Именно третья корзина решает, уложитесь ли вы в шесть недель. Результат первой недели — согласованный объём: конкретный список того, что войдёт в v1.
Неделя 2 — Архитектура и вопрос об API
Приложению нужно общаться с бэкендом. В лучшем случае бот уже это делает, и приложение просто вызывает те же эндпоинты. Мы проектируем клиентскую архитектуру вокруг вашего существующего API — аутентификация, модели данных, каналы реального времени — без переписывания бэкенда.
Если у бота нет отдельного бэкенда (вся логика внутри обработчиков Telegram), здесь мы выделяем тонкий слой API, чтобы бот и приложение могли его делить. Это единственная ситуация, которая действительно добавляет время, и мы помечаем её в первый день, а не обнаруживаем на четвёртой неделе.
На этой же неделе фиксируются две подсистемы, которые тихо топят чат-приложения:
- Обмен сообщениями в реальном времени — правильный жизненный цикл WebSocket: переподключение, очередь сообщений, синхронизация состояния. Ошибка здесь — ровно то, чинить что нас позвали в YouMi, где пользователей выбрасывало посреди разговора. Это неэффектно и это разница между приложением, которое работает, и приложением, которое работает, пока ничего не идёт не так.
- Push-уведомления — APNs и FCM подключаются рано, потому что уведомления — половина причины, по которой вы уходите из Telegram.
Недели 3–4 — Строим ядро
Самый плотный отрезок: собственно приложение. В единой кодовой базе на Flutter команда строит:
- Чат-интерфейс — плавный скроллинг по тысячам сообщений, мультимедиа, стриминг ответов, если бот на AI (инкрементальный рендеринг Markdown, который мы сделали для Arcana, живёт здесь).
- Аутентификацию — телефон, email или вход через соцсети, сопоставленные с вашими существующими пользователями, чтобы аккаунты перенеслись.
- «Повышенные» экраны из первой недели — дашборды, история, настройки, профили.
- Push-уведомления от начала до конца, по вашему расписанию и на ваших условиях.
В конце каждой недели вы получаете демо-сборку. Не статусное письмо — устанавливаемую сборку на реальном устройстве. Это не обсуждается: еженедельные сборки — это то, как ловится расползание объёма, пока его дёшево исправить.
Неделя 5 — Инфраструктура миграции и подготовка к сторам
Теперь часть, уникальная именно для миграции, а не сборки с нуля. Три вещи идут параллельно:
- Связывание аккаунтов. Пользователь открывает приложение и подтверждает, что он тот же человек, что пользовался ботом — обычно диплинком из бота в одно касание с подписанным токеном или совпадением по телефону/email. Его история и данные едут с ним.
- Публикация в сторах. Карточки App Store и Google Play, скриншоты, декларации о приватности, отправка на ревью. Очередь ревью Apple — единственная внешняя зависимость, которую вы не контролируете полностью, поэтому это начинается сейчас, а не на шестой неделе.
- Мост внутри бота. Сам бот становится вашим лучшим каналом привлечения. Мы добавляем флоу анонса и диплинки, чтобы 50k пользователей узнали о приложении внутри инструмента, который они и так открывают каждый день.
Неделя 6 — Запуск и начало миграции
Приложение выходит. Но «запуск» не означает резкое переключение — и это та часть, которой основатели боятся больше всего, поэтому будем точны.
Вы не выключаете бота. Бот продолжает работать. В день запуска он начинает подталкивать пользователей к приложению диплинком, но любой, кто проигнорирует, продолжает пользоваться ботом ровно как раньше. Никого не отрезают, ничего не ломается, и ваши 50k пользователей не отваливаются из-за принудительной миграции.
Миграция становится регулятором, который вы поворачиваете в следующие недели: баннер, потом мягкая подсказка, потом функции только в приложении, которые сами перетягивают людей. Многие продукты оставляют навсегда упрощённого бота как вторую точку входа. Темп задаёте вы; то, что приложение живо в первый день — вот что даёт шестая неделя.
Как не потерять 50 000 пользователей
Это заслуживает отдельного раздела, потому что это настоящий страх — а механика проста, как только её увидишь.
- Параллельная работа, а не переключение. Бот и приложение сосуществуют. Никогда нет момента, когда единственный вариант пользователя — «скачай приложение или потеряй доступ».
- Бот — это канал миграции. Вы не покупаете рекламу, чтобы найти этих пользователей — они и так общаются с вами каждый день. Диплинк в боте конвертит куда лучше любой холодной install-кампании, и он бесплатный.
- Аккаунты и история переносятся. Токены-диплинки или совпадение по телефону/email означают, что пользователь входит и находит свои данные на месте. Приложение ощущается апгрейдом, а не стартом с нуля.
- Постепенные стимулы, а не принуждение. Функции только в приложении, лучшие уведомления и более приятный опыт перетягивают пользователей. Жёсткий дедлайн часть из них выталкивает совсем.
Сделанная так, миграция — не рискованное событие, а кривая, которой вы управляете, и бот всё это время остаётся страховкой.
Что превращает шесть недель в четыре месяца
Честно о сценариях провала, потому что они предсказуемы:
- Нет бэкенда, с которым говорить. Если вся логика живёт в обработчиках Telegram без API, выделение API добавляет 2–3 недели. Делать стоит — это фундамент, на котором стоит всё остальное — но это реальное время.
- «Паритет» значит всё. Требование выпустить в v1 все 60 команд, включая те, которыми пользуются 2%, — самый частый убийца сроков. Выпустите ядро, хвост добавьте после запуска.
- Дизайн с чистого листа. Уникальная дизайн-система, придуманная во время сборки, добавляет недели. Чистый, привычный дизайн, применённый к известному флоу, — нет.
- Решения комитетом. Шесть недель предполагают, что кто-то может согласовать экран в день, когда его увидел. Если каждое решение неделю ждёт совещания, темп задаёт календарь, а не инженерия.
- Спасение, а не сборка. Если есть недоделанное приложение, которое ломается, чинить унаследованные проблемы — другая работа, чем старт с чистого листа. Это ситуация YouMi, и она оценивается отдельно.
Ни одна из этих вещей не загадка. Мы вскрываем их на первой неделе — в этом весь смысл начинать с аудита, а не с диаграммы Ганта.
Сколько это стоит
Прямолинейная миграция в эти сроки — ключевые функции сохранены, чат-интерфейс, аутентификация, push, публикация в сторах и миграция пользователей — укладывается в диапазон 500 000–1 000 000 ₽ за четыре-шесть недель. Функциональные боты с платежами, офлайном и кастомными экранами стоят дороже и дольше; AI-боты со стримингом и рендерингом в реальном времени — ещё дороже. Полная разбивка по тарифам — на странице услуги «из бота в приложение», а фреймворк ценообразования объясняет, как объём складывается в итоговую цифру.
Что стоит усвоить: дорогая часть создания приложения — это поиск product-market fit, и этот счёт вы уже оплатили своим ботом. Миграция — дешёвая часть. Вы превращаете подтверждённый спрос в продукт, которым владеете — и это куда лучшая стартовая позиция, чем у основателя, который смотрит на пустой файл Figma и гадает, что строить.
Частые вопросы
Прямолинейный бот с рабочим бэкендом можно выпустить как приложение для iOS и Android примерно за шесть недель. Функциональные боты с платежами, офлайном или AI-стримингом обычно занимают от двух до четырёх месяцев. Срок зависит в основном от того, есть ли у бота отдельный API бэкенда и какую часть функций нужно выпустить в первой версии.
Начните с чек-листа
До единой строчки кода прогоните бота по чек-листу готовности к миграции на странице услуги. Он честно покажет, насколько близко вы к чистой шестинедельной миграции — и где пробелы будут стоить вам времени.
Если у вас бот с реальными пользователями и вы чувствуете потолок платформы — запишитесь на созвон. Мы проведём бота через аудит, скажем, какие недели будут лёгкими, а какие сложными, и дадим смету с фиксированным объёмом, а не догадку.
