step

продукт для ежедневных привычек: Telegram-бот и mini app, приложения ios и android, веб

роль
product engineer
период
2024 — н.в.
формат
соло
80 000+
пользователей
2 000+
платных клиентов
6
платформ на одном api

интерфейс

главный экран: дерево прогресса, достижения, серия дней и трекинг настроения библиотека материалов экран быстрой поддержки
приложение: главный экран с прогрессом, библиотека материалов и экран быстрой поддержки — один код на mini app, ios и android
внутренний дашборд: воронка продаж и аналитика конверсии
внутренний дашборд: воронка продаж и аналитика конверсии

задача

нужен был продукт, который удерживает человека в ежедневной работе над собой — не разовый контент, а программа, к которой возвращаются каждый день. telegram взяли точкой входа: нулевой порог, ничего не нужно устанавливать. дальше продукт пришлось развести по платформам — mini app, мобильные приложения, веб — так, чтобы это остался один продукт, а не пять разных. плюс платежи, поддержка и аналитика.

решение

  • спроектировал и разработал продукт целиком: микросервисный backend и все клиентские платформы
  • шесть точек входа на одном api: Telegram-бот и mini app, приложения ios и android, веб-читалка статей и админ-панель для контента, пользователей и аналитики
  • mini app и мобильные приложения — одна веб-кодовая база: написана по стандарту Telegram Mini Apps и собирается в ios и android через Capacitor, без отдельной нативной разработки
  • геймифицированная программа с ежедневными заданиями и трекингом состояния — то, что возвращает пользователя изо дня в день
  • платежная инфраструктура и воронка продаж с устойчивой обработкой транзакций
  • AI в поддержке: автоматическая первичная обработка обращений и разгрузка операторов

архитектура

backend разложен на микросервисы на FastAPI: у каждого своя зона ответственности и свой цикл релиза, поэтому платежи можно катить, не трогая контент и рассылки. синхронно сервисы ходят друг к другу через httpx, асинхронно — событиями в RabbitMQ через FastStream; nginx работает единой точкой входа, так что снаружи, для всех шести клиентов, контур выглядит как одно api. регламентные задачи — ежедневные напоминания, начисления, рассылки — вынесены в Celery, Redis держит кеш и состояния диалогов. данные — в PostgreSQL с миграциями через Alembic, медиа — в S3. на фронте та же логика экономии: приложение написано по стандарту Telegram Mini Apps и через Capacitor собирается в ios и android, поэтому три платформы из шести живут на одной кодовой базе, а не на трех. наблюдаемость сквозная — Prometheus, Loki и Grafana: сбои платежей и заторы в очередях видно раньше, чем о них напишут в поддержку.

стек

backend
python fastapi aiogram pydantic pyjwt sqlalchemy alembic asyncpg faststream celery httpx boto3 pytest
frontend
next.js typescript shadcn telegram mini apps
мобильные
capacitor ios android
данные
postgresql redis rabbitmq s3
инфраструктура
docker nginx github actions prometheus loki grafana