Когда ищёшь примеры того, что вообще можно сделать на Telegram Mini App и сколько это стоит в реальности, обычно натыкаешься на два типа материалов. Либо агентские кейсы с общими фразами "разработали решение под ключ", либо теоретические гайды "что такое Mini Apps и зачем они нужны бизнесу". Ни то, ни другое не отвечает на вопрос, который на самом деле волнует: а как это выглядит изнутри, когда продукт делает один человек, без команды, без готового бюджета на инфраструктуру, и должен сам разобраться, что работает, а что нет.
Это разбор PanelVault — сервиса, который я сделал сам, от первой идеи до работающего продакшена. Ниже не питч и не рекламный текст, а последовательность решений: что я пробовал сначала, почему это не сработало, и к чему пришёл в итоге. Именно эта цепочка и есть настоящий кейс применения Telegram Mini App в бизнесе — с ценами, ограничениями и техническими деталями, а не абстракциями.
Что такое PanelVault и какую проблему он решает
PanelVault — агрегатор тайтлов ру-сегмента: манга, манхва, маньхуа и комиксы собраны в личной библиотеке внутри Telegram. У пользователя есть папки — "читаю сейчас", "в планах", "избранное", "прочитано" — и прогресс по главам сохраняется автоматически. Плюс геймификация, чтобы открывать библиотеку не только в день выхода новой главы.
PanelVault решает вопрос структуры и хранения библиотеки — как тайтлы разложены по папкам и как отслеживается прогресс по главам, а не вопрос того, откуда физически берётся контент. Продукт закрывает конкретную и знакомую боль: потерянные закладки, пятнадцать открытых вкладок в разных источниках, и вечный вопрос "а это я уже читал или нет?". Именно эта боль вынесена в заголовок лендинга — не абстрактное "удобный сервис для чтения", а конкретная ситуация, которую узнаёт каждый.
Почему первая идея — просто бот, отправляющий страницы — не сработала
Первый вариант архитектуры был максимально простым: бот, который присылает страницы главы файлами прямо в чат. Идея отвалилась ещё до того, как дошла до продакшена, по чисто техническим причинам.
Средняя глава манги — это 30-80 страниц. В Telegram отправить их можно двумя способами, и оба плохие. Либо альбомом — но тогда пользователь ждёт медленную последовательную загрузку десятков изображений в чат, что превращает чтение одной главы в отдельное событие само по себе. Либо архивом — но тогда пользователь получает файл на сотни мегабайт, который на телефоне ещё нужно скачать и распаковать вручную ради одной главы комикса. Ни один нормальный пользователь так делать не будет второй раз.
Стало ясно, что чат-интерфейс Telegram физически не подходит для формата "читать десятки изображений подряд с сохранением прогресса". Нужен был отдельный интерфейс с собственной логикой листания страниц, кэшированием и историей прочитанного — то есть по сути отдельное приложение. Так родилось решение: бот остаётся, но только для онбординга и уведомлений, а вся логика библиотеки и чтения переезжает в Telegram Mini App.
Архитектура: что получилось в итоге
Финальная схема состоит из четырёх частей:
- Telegram-бот — точка входа, онбординг новых пользователей и уведомления (например, о выходе новой главы в тайтле из библиотеки).
- Telegram Mini App — собственно библиотека и интерфейс чтения глав, с папками и прогрессом.
- FastAPI backend — API, через который Mini App и бот получают данные.
- Воркер синхронизации — отдельный процесс, который следит за обновлениями тайтлов, плюс база данных под всё это.
Разделение на бот и Mini App — не архитектурная прихоть, а прямое следствие провала первого варианта. Бот хорош там, где нужен пуш-механизм (написать пользователю о новой главе), но плох как интерфейс для листания страниц и хранения прогресса чтения. Mini App закрывает именно эту часть, оставаясь при этом полностью внутри Telegram — без перехода на сторонний сайт.
Добавление тайтла: почему просто ссылки было недостаточно
Ещё одно решение, которое появилось не сразу, а после первой версии функционала — способ добавления тайтла в библиотеку. Сначала логично было сделать только добавление по прямой ссылке. Но требовать от пользователя ссылку на каждый тайтл — лишний барьер, особенно если он не помнит точный источник или просто хочет найти что-то по названию.
Поэтому добавлен поиск по названию: пользователь вводит название, бот ищет совпадения в каталоге и предлагает варианты кандидатов — а не молча берёт первый попавшийся результат и рискует подсунуть не то произведение. Это небольшая деталь, но она напрямую влияет на доверие к продукту: пользователь видит, что система работает по понятной логике, а не гадает.
Инженерная деталь, которая решает вопрос скорости и денег: ленивый кэш
Один из самых практических вопросов в такого рода Telegram Mini App для бизнеса — это стоимость инфраструктуры при росте пользователей. Если хранить и скачивать заранее пачками все страницы всех тайтлов — расходы на хранилище растут неконтролируемо, а большая часть этих данных вообще не будет востребована.
Решение — ленивое кэширование. Страницы не скачиваются заранее. Они кэшируются в момент, когда пользователь реально открывает конкретную главу, и сразу конвертируются в формат WebP — он весит меньше и грузится быстрее, чем оригинальные форматы. У кэша есть жёсткий лимит в 30 гигабайт, и при его достижении старые, невостребованные главы вытесняются автоматически, без ручного вмешательства.
Отдельная сложность — доступ к изображениям иногда нестабилен на инфраструктурном уровне: встречаются ошибки 403 и срабатывания DDoS-защиты на стороне источников. Решается это ретраями и фолбэками на уровне бэкенда — пользователь просто не видит этой возни, глава открывается штатно даже когда за кулисами были повторные попытки запроса.
Геймификация: зачем она нужна не для развлечения, а для удержания
Без геймификации любой сервис для чтения открывают ровно тогда, когда выходит новая глава любимого тайтла — и не более того. Чтобы менять эту модель, в PanelVault добавлены:
- XP за прочитанные главы,
- ранги на основе накопленного опыта,
- дневной стрик (серия дней подряд с активностью),
- реферальная программа — у каждого пользователя своя ссылка и счётчик приглашённых.
Это механизм, напрямую влияющий на частоту возвращения в приложение — метрику, которая для любого бизнеса на Telegram Mini App важнее разового захода.
Монетизация: Telegram Stars и тарифная сетка
Оплата реализована через Telegram Stars прямо в интерфейсе Mini App, без вывода пользователя на внешние платёжные системы — то есть вся транзакция происходит там же, где пользователь уже находится, без лишнего трения. Тарифы:
- Premium — 199★/мес, до 10 активных тайтлов в библиотеке одновременно. Самый популярный тариф.
- Plus — 399★/мес, до 30 тайтлов.
- Lifetime — разовый платёж 3500★, без ограничения по времени.
- Extra Slot — 50★, добавляет +1 тайтл поверх лимита текущего тарифа.
Такая сетка отвечает на частый вопрос из серии "telegram mini apps для бизнеса цены и кейсы" конкретно, а не абстрактно: видно, что монетизация не привязана к внешнему эквайрингу и что цена входа для пользователя минимальна (199★ — это меньше доллара), а масштабирование лимита тайтлов идёт через понятную прогрессию тарифов плюс точечную докупку слотов.
Лендинг: почему не конструктор с типовыми блоками
Для продвижения продукта не стал брать шаблонный конструктор с блоками "о нас / услуги / контакты" — это работает для абстрактной компании, но не продаёт конкретный продукт с конкретной болью пользователя. Вместо этого сама боль — потерянные закладки, десятки вкладок, вопрос "а это я уже читал?" — вынесена прямо в заголовок hero-секции.
Оформление — тёмная premium-тема, которая визуально соответствует продукту (чтение комиксов вечером, не яркий "корпоративный" стиль). В секции тарифов есть переключатель валют — Stars/$/₽ — прямо на странице, чтобы пользователь сразу видел цену в привычной для себя единице, без пересчёта в уме.
Деплой: от домашнего ПК до отдельных серверов
Изначально всё — бэкенд, бот и воркер синхронизации — крутилось на домашнем ПК через временный туннель. Это работало ровно до первой перезагрузки компьютера: сервис падал, и его нужно было поднимать заново вручную. Для эксперимента и раннего тестирования это приемлемо, но не для продукта, которым реально пользуются люди.
Решение — перенос бэкенда, бота и воркера на VPS (Hetzner). Теперь они работают независимо от того, включён ли домашний компьютер. Лендинг при этом развёрнут отдельно — на Cloudflare Pages, что даёт быструю загрузку статической части и полную независимость от состояния бэкенд-сервера: даже если с API что-то не так, страница с описанием и тарифами всё равно открывается мгновенно.
Итог
PanelVault — работающий продукт: бот, Telegram Mini App, FastAPI backend, воркер синхронизации и лендинг, сделанные одним человеком и доведённые до продакшена на реальном VPS. Каждое архитектурное решение в этом кейсе выросло из конкретного провала предыдущего варианта: чат не подходит для чтения глав, добавление только по ссылке — барьер для пользователя, домашний ПК — не инфраструктура для продакшена.
Если нужен похожий продукт под ваш бизнес — Telegram-бот, Mini App или лендинг, собранные с нуля и доведённые до реального деплоя, а не до макета — пишите в директ SolaLab или оставляйте заявку на сайте.