CourseVault
Закрита навчальна платформа всередині Telegram-бота. Native DRM блокує пересилання, збереження, скріншоти і запис екрана — автори курсів перестають втрачати до 50% виручки на зливах.

Проблема, яку ми прийшли вирішити.
У авторів було три погані варіанти: свій сайт (тисячі доларів, ops-головняк, відео все одно зливають через тиждень), generic LMS-платформа (водяний знак кропають, файли все одно втікають), Telegram-канал (захисту нуль, файли розходяться за хвилини). Який би шлях не обрали — половина роботи опинялася безкоштовно в Telegram за добу.
Один бот. Уроки не можна переслати, зберегти, заскрінити на мобільному. Доступ видається за @username. Студенти вчаться в тому ж додатку, який і так відкривають по десять разів на день. Автор залишає собі виручку.
Контекст
Автори курсів у 2025–26 втрачають до 50% виручки через піратство. Уроки втікають у складчини і групи-перепродажу протягом годин після запуску — іноді швидше, ніж платячі клієнти доходять до онбордінгу. Свій сайт коштує тисячі доларів на розробку і підтримку. Прості Telegram-канали не дають жодного захисту від копіювання. Consumer-LMS платформи впираються у водяні знаки, які будь-хто кропає за пʼять хвилин. Бриф був — платформа курсів, що запускається за дні, живе там, де аудиторія вже сидить, і закриває канали витоку на рівні протоколу, а не постфактум.
Підхід
Закрита навчальна платформа всередині Telegram-бота — месенджер перетворений на hardened LMS. Ядро бота — Node.js + grammY. MongoDB зберігає структуру курсу (модулі, уроки, посилання на медіа) і реєстр студентів. DRM-шар побудований на нативному Telegram-прапорі protect_content: кожне повідомлення уроку відправляється з no-forward, no-save, no-copy, що enforce-иться на серверній стороні. На мобільних клієнтах скріншоти і запис екрана блокуються на рівні OS-IPC — Android позначає view уроку як FLAG_SECURE, iOS отримує сигнал protected-content, який система поважає. Навігація по модулях і уроках відчувається як сайт — кероване власником меню, breadcrumb назад, жодних зовнішніх посилань, через які урок може втекти. Адмінка власника живе прямо в боті: видача і відкликання доступу за @username або числовим ID одним тапом, перегляд реєстру, аудит того, хто що дивився. Контент бачать лише користувачі з access-листа. Неоплатилі впираються в paywall і не бачать жодного байта уроку.
Як цей проєкт робився насправді.
Кожен проєкт залишає паперовий слід. Коментарі в Figma, ТЗ у Notion, історія в GitHub, логи Vercel, треди в Telegram, перша тижнева аналітика. Цифри нижче — реальні, скріни доступні на запит під NDA.
◆ Скріни будь-якого артефакту — на запит. Конфіденційні деталі відредаговані.
Ключові можливості
- ◆Telegram-native DRM через protect_content — не переслати, не зберегти, не скопіювати
- ◆Скріншоти та запис екрана на мобільних заблоковано на рівні OS-IPC
- ◆Навігація рівня сайту — модулі, уроки, breadcrumb назад, без виходу з чату
- ◆Адмінка прямо в боті — видача та відкликання доступу за @username або ID
- ◆Жорсткий gate доступу — контент бачать тільки оплатилі, без винятків
Результати
Автор курсу отримав повний контроль над дистрибуцією. Нуль витоків файлів у складчини з моменту запуску. Студенти заходять у курс прямо з телефону — без окремого додатку, без логіну, без password reset loop. Той ~50% слив виручки, який автор звик терпіти, закритий. Реєстром автор керує прямо зсередини Telegram — без окремого дашборда, без таблиць.
Tech stack
What the client said.
Два роки втрачав половину виручки на зливах. Перейшов на бот за тиждень. Нуль витоків з запуску — і студенти самі кажуть, що їм так зручніше, бо курс живе в тому ж додатку, який вони і так відкривають по десять разів на день. Записи, в які я вкладався, нарешті окуповуються.