Заменили no-code-связку на собственную SaaS-платформу
Онлайн-школа выросла за «Tilda + GetCourse + Telegram + Google Sheets». Построили платформу с LMS, биллингом подписок, авто-сегментацией, видеоплеером с защитой и mobile-PWA. Multi-tenant — масштабируется на новые школы.
Это типовой сценарий разработки на основе нашей экспертизы и стека. Архитектура и подходы — реальные. Метрики и контекст приведены как ориентир для проектов аналогичной сложности.
О клиенте
Онлайн-школа программирования. 1500 учеников в месяц, 8 направлений (Python, JavaScript, Java, Go, мобайл, DevOps, аналитика, ML). Выручка 280 млн ₽/год, основной канал — таргет ВК + Telegram-каналы.
Проблема
Стек на старте — типовой no-code:
- Tilda (лендинги направлений).
- GetCourse (LMS, биллинг, рассылки).
- Telegram (общение с учениками и преподавателями).
- Google Sheets (учёт оплат, прогресса, домашек).
Это работало до 500 учеников/мес. На 1500 — начало ломаться:
- Ученики жаловались на доступы (GetCourse не справлялся с интеграциями).
- 35% учеников не доходили до конца курса — нет вовлечения, нет авто-триггеров.
- Запуск нового курса — 2 недели операционной работы на сборку всего стека.
- Невозможно нормально считать LTV и ROI на канал привлечения.
- При 1500 учеников/мес платежи в GetCourse требовали ручных сверок — 4 часа в день финансового менеджера.
Что сделали
Своя LMS
Курсы, модули, уроки, домашние задания. Отдельный модуль для проверки кода — отправка на код-ревью преподавателю с inline-комментариями. Выдача сертификата при прохождении 80% курса.
Биллинг подписок
Полноценный биллинг с поддержкой:
- Рекуррентные платежи через YooKassa и СБП-Pay.
- Рассрочки (Долями, Тинькофф Кредит).
- Промокоды, скидки, тарифные планы.
- Возвраты, в том числе частичные.
- Автоматическое продление, дозвоны при failed payment.
Финансовый учёт нативно интегрирован — финдиректор видит выручку и LTV в одном месте, без Google Sheets.
Авто-сегментация и триггеры
Ученики сегментируются по поведению: «не зашёл 3 дня», «застрял на модуле», «прошёл больше 80%», «оплатил, но не начал». На каждый сегмент — авто-триггеры в Telegram, email и push (через PWA):
- Напоминания.
- Предложения upsell (продвинутый курс, менторство).
- Опросы по NPS.
Это +37% retention: ученик не «теряется», его догоняют.
Защищённое видео
Интеграция с Kinescope (российский видеохостинг с защитой):
- Видео не скачивается стандартными способами.
- HLS с подписанными URL.
- Аналитика просмотров (с какой минуты ушли, какие куски пересматривают).
Мобильное приложение через PWA
Не native, а PWA — потому что окупаемость native-приложения для 1500 пользователей в месяц низкая:
- Офлайн-режим для уроков (через service worker).
- Push-уведомления (через web push).
- Установка на iOS/Android из браузера.
- Стоимость поддержки в 5 раз меньше native.
Multi-tenant архитектура
Заложили с самого начала: каждая «школа» — отдельный tenant с изоляцией данных, своими настройками брендинга, тарифами, преподавателями. Через 3 месяца после запуска клиент запустил вторую школу на той же платформе — для маркетинговых курсов. Время запуска новой школы — 1 неделя вместо 5 месяцев.
Стек
- Backend: Python 3.12, FastAPI, SQLAlchemy + Alembic, Celery + Redis, structlog
- Real-time: WebSocket для live-уроков, чата с преподавателем
- Видео: Kinescope API, HLS streaming
- Платежи: YooKassa SDK, СБП, Долями
- Frontend: React 18 + TypeScript, Vite, TanStack Query, Radix UI, PWA
- Push: Web Push, FCM-fallback
Результаты
- +37% retention до конца курса (с 65% до 89%).
- +28% LTV на ученика за счёт upsell в продвинутые курсы.
- −85% время запуска нового курса (с 2 недель до 1 дня настройки в админке).
- −50% costs на поддержку (один senior support вместо команды из 4 человек).
- Окупаемость — 5 месяцев.
После 12 месяцев клиент рассматривает возможность лицензирования платформы другим школам как white-label — это уже не «студия сделала сайт», а полноценный SaaS-продукт.
Когда подходит
- EdTech с потоком 500+ учеников/мес, упёршийся в no-code-связки.
- Подписочная модель, рекуррентные платежи, нужна нормальная финансовая аналитика.
- Несколько направлений / школ, multi-tenant — преимущество.
- Готовность инвестировать в собственный продукт, а не «арендовать».
Похожая задача в вашем бизнесе?
На бесплатной встрече за 60 минут разберём, какой ROI это даст у вас и какая архитектура подойдёт.