← Блог SOLALAB

Кейсы применения Telegram Mini App в бизнесе: как я сделал PanelVault от идеи до продакшена

Кейс PanelVault: бот + Telegram Mini App + лендинг с нуля одним разработчиком. Реальные решения по архитектуре, кэшу, монетизации Stars — не теория.

Когда ищёшь примеры того, что вообще можно сделать на 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 или оставляйте заявку на сайте.

Нужен похожий продукт?

Бот, Telegram Mini App или лендинг — с нуля и до реального деплоя. Обсудим ваш проект бесплатно.

Написать в Telegram-бота SOLALAB

Или посмотрите другие статьи блога