Telegram Mini Apps в 2025: когда брать вместо мобильного приложения
За 2024 год мы запустили 7 Telegram Mini Apps и одно нативное приложение. Разбираем, при каких бизнес-условиях TMA окупается в 4–6 раз быстрее, а где без нативки не обойтись.
Дайджест Креастры
- TMA окупается за 6–10 недель, нативное приложение — за 8–14 месяцев
- Лимит TMA: оффлайн, фоновые задачи, тяжёлая графика, пуш вне Telegram
- Платежи через Telegram Stars или встроенный provider — легально и без stores fee
К середине 2025 у Telegram больше 950 миллионов активных пользователей, и Mini Apps перестали быть нишей. У нас в студии сейчас 7 запущенных TMA — от записи к мастеру для барбершопа «Бритва» до B2B-каталога мебельной фабрики «Дубрава». Параллельно делаем одно нативное iOS/Android-приложение для клиники. Вот рамка, по которой выбираем формат.
Когда TMA — очевидная победа
- Аудитория уже сидит в Telegram (B2C-услуги, локальный ритейл, b2b-сервисы для предпринимателей)
- Сценарии короткие: запись, оплата, заказ, статус, поиск по каталогу
- Нет требования работать оффлайн дольше 5 минут
- Не нужны тяжёлые сенсоры (LiDAR, NFC сложнее, чем чтение метки)
- Бюджет до 2.5 млн ₽ и срок до 12 недель
Когда без нативки никак
Если приложение — основная точка контакта с клиентом и им пользуются 5+ раз в неделю по 10+ минут, нативка окупится. Также если есть требования к фоновой работе (геотрек курьера, фитнес-трекинг, реальное время AR), к биометрии для критичных операций или к интеграциям с экосистемой устройства (CarPlay, Wear OS).
Стек, который мы прижали
Под TMA у нас один шаблон: Next.js 15 на edge-runtime, тонкая прослойка для проверки initData, GraphQL поверх Postgres, Prisma для типизации. Тема и цвета — через Telegram WebApp API, поэтому приложение выглядит «родным» в светлой и тёмной теме без отдельной верстки.
// Проверка initData на сервере — критично, иначе подмена пользователя
import crypto from 'node:crypto';
export function verifyInitData(initData: string, botToken: string) {
const url = new URLSearchParams(initData);
const hash = url.get('hash');
url.delete('hash');
const dataCheck = [...url.entries()]
.sort(([a], [b]) => a.localeCompare(b))
.map(([k, v]) => `${k}=${v}`)
.join('\n');
const secret = crypto.createHmac('sha256', 'WebAppData').update(botToken).digest();
const computed = crypto.createHmac('sha256', secret).update(dataCheck).digest('hex');
return computed === hash;
}Кейс «Бритва»: запись к мастеру
У барбершопа «Бритва» 6 точек в Москве. До TMA запись шла через WhatsApp-администраторов: средний ответ 14 минут, потеря 22% заявок в часы пик. Mini App мы собрали за 7 недель: каталог мастеров, слоты в реальном времени, оплата через Telegram-провайдера, напоминание за 2 часа.
Платежи: Stars vs провайдер
Telegram Stars — для цифровых товаров и подписок, удобно и без комиссии магазина. Для физических услуг и российских ИП/ООО лучше провайдер (ЮKassa, Тинькофф) — деньги падают на ваш расчётный счёт напрямую. У «Бритвы» подключили ЮKassa: комиссия 2.4%, зачисление на следующий рабочий день.
Грабли
- Не доверяйте initData без серверной проверки — это корень безопасности TMA
- Viewport меняется при открытии клавиатуры — верстайте на 100dvh, не 100vh
- BackButton нужно скрывать руками при переходе на главный экран
- iOS иногда теряет фокус ввода — поможет setTimeout(focus, 60)
- Аналитику собираем сами: Telegram не даёт нативной воронки
Когда стоит делать оба
Гибрид имеет смысл, когда есть две явные группы: массовая аудитория с короткими сценариями (TMA) и лояльные пользователи с длинной сессией (нативка). У клиники, для которой мы делаем нативное приложение, TMA планируется отдельно — для записи и предзаполнения анкет, чтобы не заставлять «лида» ставить полноценное приложение ради одного действия.