Коротко. Telegram-бот с реальной базой пользователей и бэкендом за ним можно превратить в выпущенное приложение для iOS и Android примерно за шесть недель — не потому что работа тривиальна, а потому что сложный продуктовый вопрос (нужно ли это кому-то?) уже решён. Этот пост — понедельный план: что и когда делается, куда на самом деле уходят шесть недель, как мигрировать 50 000 пользователей, не потеряв их, и что именно превращает шесть недель в четыре месяца. Если хотите сначала проверить себя — на странице услуги «из бота в приложение» есть чек-лист готовности.
Если нужен только график — переходите к плану на шесть недель.
Исходная точка
Представьте своё положение — оно хорошее. Год-два назад вы запустили Telegram-бота, чтобы проверить идею. Сработало. Теперь у вас 50 000 пользователей, которые его открывают, используют и иногда платят. Бот делает что-то настоящее: фитнес-коуч, AI-ассистент, финансовый трекер, языковой репетитор, маркетплейс — категория для этого поста неважна. Важно, что у вас есть product-market fit на платформе, которой вы не владеете.
И платформа начинает мешать. Пользователи просят то, чего бот не умеет. Вы не можете отправить push так, чтобы он не утонул в приглушённом канале. Вы не можете брать оплату так, как хотите. Изменение в Telegram Bot API сломало флоу в прошлом квартале, и вы потратили выходные на тушение пожара. Вы успешны вопреки платформе и упираетесь в потолок.
Поэтому вам нужно приложение. Вопрос, который задаёт каждый основатель в этой позиции, один и тот же: сколько времени и как не потерять 50 000 пользователей, которые уже есть?
Честный ответ для большого класса ботов — шесть недель до выпущенного приложения плюс постепенная миграция, которая идёт параллельно и завершается, когда вы сами решите. Вот почему эта цифра реалистична и куда именно уходит время.
Разбор ниже — собирательный: это план, который мы по частям выполняли на реальных чат-ориентированных Flutter-проектах вроде Arcana (клиент стримингового AI-чата, выпущен за три недели) и YouMi (приложение для обмена сообщениями в реальном времени, стабилизированное за две). Ни один клиент не является «тем самым ботом с 50 000 пользователей», но каждый шаг здесь — то, что мы действительно делали.
Почему шесть недель реалистичны (и когда нет)
Шесть недель кажутся слишком амбициозным сроком, пока не вспомните, чего вы не делаете.
Вы не придумываете продукт заново. Вы не проводите исследование пользователей, чтобы понять, что делать: ваш бот — это два года исследований. Вы не проектируете новую модель взаимодействия — разговорный флоу уже работает, и большую его часть вы сохраните. Вы не проверяете спрос — 50 000 человек уже его подтвердили.
Остаётся исполнение по известной спецификации — и именно это сжимается. Из единой кодовой базы на Flutter приложение выходит сразу на iOS и Android (мы писали, почему одна кодовая база лучше двух нативных сборок), так что вы не платите за одну и ту же работу дважды. Бэкенд по большей части существует. Список функций конечен и уже проверен в бою.
Шесть недель реалистичны, когда:
- Бот уже общается с серверным API, а не только с серверами Telegram.
- Набор функций — это чат плюс несколько экранов, а не разросшийся супер-апп.
- Есть один человек, принимающий решения: он может согласовать дизайн и объём без комитета.
- Вы готовы выпустить сфокусированную v1 и добавить «длинный хвост» после запуска.
Шесть недель не реалистичны, когда у бота нет отдельного бэкенда и вся логика живёт в обработчиках (добавьте 2–3 недели на выделение API), когда нужна дизайн-система с нуля или когда «паритет» втайне означает пятьдесят команд под edge-кейсы, каждой из которых нужен свой экран. К этому вернёмся в разделе что срывает сроки.
План на шесть недель, по неделям
Вот график, по которому мы работаем. Недели пересекаются сильнее, чем подсказывает этот линейный список — дизайн начинается, пока завершается аудит, оформление для сторов стартует в первый день — но критический путь выглядит так.
Неделя 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 — единственная внешняя зависимость, которую вы не контролируете полностью, поэтому это начинается сейчас, а не на шестой неделе.
- Мост внутри бота. Сам бот становится вашим лучшим каналом привлечения. Мы добавляем флоу анонса и диплинки, чтобы 50 000 пользователей узнали о приложении внутри инструмента, который они и так открывают каждый день.
Неделя 6 — Запуск и начало миграции
Приложение выходит. Но «запуск» не означает резкое переключение — и это та часть, которой основатели боятся больше всего, поэтому будем точны.
Вы не выключаете бота. Бот продолжает работать. В день запуска он начинает подталкивать пользователей к приложению диплинком, но любой, кто его проигнорирует, продолжает пользоваться ботом ровно как раньше. Никого не отрезают, ничего не ломается, и ваши 50 000 пользователей не отваливаются из-за принудительной миграции.
Миграция становится регулятором, который вы поворачиваете в следующие недели: баннер, потом мягкая подсказка, потом функции только в приложении, которые сами перетягивают людей. Многие продукты навсегда оставляют упрощённого бота как вторую точку входа. Темп задаёте вы; а то, что приложение уже живо с первого дня, — это и есть результат шестой недели.
Как не потерять 50 000 пользователей
Это заслуживает отдельного раздела, потому что это настоящий страх — а механика проста, стоит только её увидеть.
- Параллельная работа, а не переключение. Бот и приложение сосуществуют. Не бывает момента, когда у пользователя остаётся единственный выбор: «скачай приложение или потеряй доступ».
- Бот — это канал миграции. Вы не покупаете рекламу, чтобы найти этих пользователей — они и так общаются с вами каждый день. Диплинк в боте конвертит куда лучше любой холодной install-кампании, и он бесплатный.
- Аккаунты и история переносятся. Токены-диплинки или совпадение по телефону/email означают, что пользователь входит и находит свои данные на месте. Приложение ощущается апгрейдом, а не стартом с нуля.
- Постепенные стимулы, а не принуждение. Функции только в приложении, более удобные уведомления и более приятный опыт перетягивают пользователей. А жёсткий дедлайн часть из них выталкивает совсем.
Если делать так, миграция — не рискованное событие, а кривая, которой вы управляете, и бот всё это время остаётся страховкой.
Что превращает шесть недель в четыре месяца
Честно о сценариях провала, потому что они предсказуемы:
- Нет бэкенда, с которым говорить. Если вся логика живёт в обработчиках Telegram без API, выделение API добавляет 2–3 недели. Делать стоит — это фундамент для всего остального, — но это реальное время.
- «Паритет» значит всё. Требование выпустить в v1 все 60 команд, включая те, которыми пользуются 2%, — самый частый убийца сроков. Выпустите ядро, хвост добавьте после запуска.
- Дизайн с чистого листа. Уникальная дизайн-система, придуманная по ходу разработки, добавляет недели. Чистый, привычный дизайн, применённый к известному флоу, — нет.
- Решения комитетом. Шесть недель предполагают, что кто-то может согласовать экран в день, когда его увидел. Если каждое решение неделю ждёт совещания, темп задаёт календарь, а не инженерия.
- Спасение, а не разработка с нуля. Если есть недоделанное приложение, которое ломается, чинить унаследованные проблемы — совсем не то же самое, что начинать с чистого листа. Это ситуация YouMi, и она оценивается отдельно.
Ни одна из этих вещей не загадка. Мы вскрываем их на первой неделе — в этом весь смысл начинать с аудита, а не с диаграммы Ганта.
Сколько это стоит
Простая миграция в эти сроки — ключевые функции сохранены, чат-интерфейс, аутентификация, push, публикация в сторах и миграция пользователей — укладывается в диапазон 450 000–900 000 ₽ за четыре-шесть недель. Боты с большим набором функций — с платежами, офлайном и кастомными экранами — обходятся дороже и занимают больше времени; AI-боты со стримингом и рендерингом в реальном времени — ещё дороже. Полная разбивка по тарифам — на странице услуги «из бота в приложение», а разбор ценообразования объясняет, как объём складывается в итоговую цифру.
Что стоит усвоить: дорогая часть создания приложения — это поиск product-market fit, и этот счёт вы уже оплатили своим ботом. Миграция — дешёвая часть. Вы превращаете подтверждённый спрос в продукт, которым владеете — и это куда лучшая стартовая позиция, чем у основателя, который смотрит на пустой файл Figma и гадает, что строить.
Частые вопросы
Простая миграция с ключевыми функциями, чатом, аутентификацией, push-уведомлениями и публикацией в сторах укладывается примерно в 450 000–900 000 ₽. Боты с большим набором функций и AI-боты стоят дороже. Поскольку бот уже доказал спрос, самая дорогая часть создания приложения уже оплачена.
::
Начните с чек-листа
Ещё до первой строчки кода прогоните бота по чек-листу готовности к миграции на странице услуги. Он честно покажет, насколько вы близки к чистой шестинедельной миграции — и где пробелы будут стоить вам времени.
Если у вас бот с реальными пользователями и вы упираетесь в потолок платформы — запишитесь на созвон. Мы проведём аудит вашего бота, скажем, какие недели будут лёгкими, а какие сложными, и дадим смету с фиксированным объёмом работ, а не догадку.

