Нужна была программа медитаций на 14 дней для уставших женщин 28–45 лет, которая живёт прямо в Telegram — без установки приложений и регистрации.
Главная метрика продукта: человек открывает приложение каждый день и доходит до 14-го дня, а не прослушивает всё за вечер и бросает. Практики нужно подбирать под состояние человека, а аудио — защитить от скачивания по прямой ссылке.
Сделал бота и мини-приложение с нуля.
• Диагностика из 9 вопросов по весам ответов выбирает один из четырёх треков: тревога, сон, выгорание, рассеянность.
• Дни открываются по календарю, по одному в сутки. День засчитывает сервер при 80% прослушивания.
• Свой плеер: тушевый круг-энсо дорисовывается по ходу практики (SVG).
• Вход по подписи Telegram initData, аудио только по подписанным ссылкам с ограниченным сроком.
• Бот на aiogram 3: напоминание в выбранный час с учётом часового пояса, защита от повторной отправки.
• Бонусные практики после 7-го дня, реферальные ссылки.
• Своя дизайн-система: шрифты Cormorant и Manrope, анимации с учётом prefers-reduced-motion, контраст текста проверяется тестом.
• Бэкенд: FastAPI, SQLAlchemy 2 + Alembic, PostgreSQL 16, Redis, APScheduler.
• Фронтенд: React, TypeScript, Vite, Tailwind 4, TanStack Query, Zustand.
• 106 тестов бэкенда, 14 e2e-сценариев Playwright, mypy --strict.
• Деплой: Docker Compose + nginx на VPS.
Весь путь от диагностики до ежедневных напоминаний работает на тестовом сервере, бот @medsesion_bot отвечает. Проект готов к подключению оплаты и загрузке финальных записей практик: платёжный сценарий спроектирован (Робокасса, идемпотентность), сервер уже закрывает дни после пробных двух.
Срок: основная разработка — 2 дня, всего неделя. Решения задокументированы в 15 ADR, есть инструкции по запуску и деплою.