Перейти к контенту
EdTech · Онлайн-обучение программированию

Заменили no-code-связку на собственную SaaS-платформу

Онлайн-школа выросла за «Tilda + GetCourse + Telegram + Google Sheets». Построили платформу с LMS, биллингом подписок, авто-сегментацией, видеоплеером с защитой и mobile-PWA. Multi-tenant — масштабируется на новые школы.

+37%
retention учеников до конца курса
+28%
выручка на одного ученика за счёт upsell
−85%
время запуска нового курса
Сценарий проекта

Это типовой сценарий разработки на основе нашей экспертизы и стека. Архитектура и подходы — реальные. Метрики и контекст приведены как ориентир для проектов аналогичной сложности.

Бюджет
4.2 млн ₽
Длительность
5 месяцев
Команда
5 человек
Стек
FastAPI · PostgreSQL · Redis · Celery

О клиенте

Онлайн-школа программирования. 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 это даст у вас и какая архитектура подойдёт.