Гайд · свой онлайн курс · август 2026
Открыть онлайн школу одному: 6 кирпичей и первый поток
Свой онлайн курс упирается не в знания, а в шесть технических кусков: программа, площадка, лендинг, бот, приём оплаты и поддержка. Ниже все шесть по порядку, с реальными командами и ценами на 14 августа 2026 - минимальная сборка стоит 169 руб за домен, а не 5 900 руб в месяц за готовую платформу
Онлайн-школа одного человека - это шесть кирпичей: программа, площадка, лендинг, бот, приём оплаты и поддержка. Минимальная сборка обходится в 169 ₽ за домен плюс комиссия эквайринга с продажи: площадка - закрытый канал в Telegram, бот - бесплатный BotFather, лендинг - одна страница, собранная в Claude Code
Всю школу от идеи до первого ученика собираешь за один вечер прямо по ходу статьи. Как та же сборка выдерживает второй поток - разбираем на ИИ-Лагере
Кнопка ведёт в мой закрытый канал. Жмёшь «Подать заявку», впускаю сразу, бот пишет в личку и отдаёт путёвку. Бесплатно
Из чего состоит онлайн-школа одного человека?
Онлайн-школа одного человека собирается из 6 кирпичей: программа, площадка, лендинг, бот выдачи доступа, приём оплаты и поддержка, а минимальная сборка стоит 169 руб за домен плюс процент с продажи. Убери любой кирпич - и цепочка «увидел страницу → учится» рвётся ровно в этом месте
Вся сборка и вся смета одной таблицей:
| Кирпич | Что нужно на старте | Минимальный вариант | На чём собрать | Сколько стоит |
|---|---|---|---|---|
| Программа | шесть уроков и критерий готовности к каждому | текст в одном файле, видео пишутся по ходу потока | Claude Code по списку своих задач | 0 руб |
| Площадка | место, где лежат уроки, и вход по списку | закрытый канал в Telegram | Telegram, вступление по заявке | 0 руб |
| Лендинг | страница с обещанием, программой и кнопкой | шесть экранов, один файл | Claude Code, публикация на GitHub Pages | домен 169 руб за первый год |
| Бот | выдача доступа после оплаты | ответ на /start и одноразовая ссылка | BotFather и Claude Code | 0 руб |
| Приём оплаты | ссылка на оплату для любого покупателя | платёжная ссылка самозанятого | Продамус или ЮKassa | 3,8% с платежа |
| Поддержка | место, где отвечают на вопросы | общий чат потока | Telegram | 0 руб |
Таблица прокручивается вбок →
Цены на 14 августа: домен .ru - 169 руб за первый год по акции регистратора, 226 руб за продление; Продамус самозанятому - бесплатно при комиссии 3,8%
Готовая платформа делает то же самое кнопками и берёт 5 900 руб в месяц на тарифе «Старт» при потолке в 1 000 пользователей - счёт с первого месяца, продажа когда придётся
Вся школа после сборки умещается в одну папку на 20 КБ. Вот что в ней лежит у меня после первого потока:
| Файл | Что это | Строк |
|---|---|---|
index.html | лендинг из шести экранов | 80 |
programma.md | программа шести уроков | 10 |
potok.py | счёт мест и остатка с продажи | 31 |
oplaty.txt | список оплат потока | 3 |
Таблица прокручивается вбок →
Итого 124 строки и 20 КБ на диске: столько весит школа, за которую готовая платформа просит 5 900 руб в месяц
Каркас соло-бизнеса целиком разобран в отдельном гайде, а полная смета запуска - вот тут
Что можно НЕ делать на первом потоке?
Шесть вещей на первом потоке пропускаются целиком: платформа за 5 900 руб/мес, уроки заранее, автоворонка - полная таблица ниже
| Что хочется сделать | Почему это тормозит | Что вместо этого |
|---|---|---|
| Купить платформу для онлайн-школы | 5 900 руб в месяц уходят до первой продажи | закрытый канал в Telegram и бот на входе |
| Записать все шесть уроков заранее | месяц съеден, а спроса ты ещё не проверял | пишешь урок на той неделе, на которой его проходят |
| Сделать мобильное приложение | месяцы разработки ради того, что уже стоит у ученика на телефоне | Telegram |
| Заказать дизайн лендинга | ожидание подрядчика плюс правки, от двух недель | шесть экранов на системных шрифтах за один заход |
| Собрать сайт из пяти страниц | навигацию и раздел «о нас» перед первой покупкой не читают | одна страница, на которой есть кнопка |
| Настроить автоворонку из писем | цепочка на семь писем без единого подписчика в базе | одно сообщение в канал и одна ссылка на оплату |
Таблица прокручивается вбок →
Про конструкторы: у Tilda свой домен даёт только тариф Personal - 500 руб в месяц при оплате за год вперёд, 750 руб помесячно, а бесплатный тариф оставляет адрес чужим. Даже самый дешёвый путь конструктора упирается в подписку ровно там, где нужен нормальный адрес страницы
Шесть уроков и поток - обязательство на несколько недель. Сил пока нет? Проверь тему малой кровью: мини-продукт за один вечер - та же логика, оттуда до потока один шаг
Нельзя пропускать три вещи: критерий готовности урока, кнопку оплаты и одноразовую ссылку в канал - без них ученик не поймёт, зачем он здесь, не заплатит или уведёт закрытый канал наружу в первый же день
Шаг 0. Что поставить до первой команды
Ставится один раз, до старта: Claude Code (окно, где ты пишешь ИИ задачи словами) и бесплатный аккаунт GitHub - дальше в общей папке появятся программа, лендинг и код бота, а лендинг уедет с этой папки в интернет
Если Claude Code ещё не стоит, ставь по нашему гайду: как поставить Claude Code с нуля - установка на Mac и Windows, вход в аккаунт, первая проверка. Официальный старт - quickstart в документации
Когда Claude Code стоит, проверь, что он живой. Скопируй строку ниже, вставь её в поле ввода Claude Code (то самое окно, где будешь писать задачи) и нажми Enter:
claude --version
Документация обещает номер версии и (Claude Code) следом. У себя на экране увидишь такой же ответ, только со своими номерами.
У меня 14 августа 2026 года команда отдала строку 2.1.186 (Claude Code) - ровно то, что обещает документация. Рядом стоят версии двух соседних программ, Node v25.9.0 и Python 3.14.6 - пригодятся, если бот пишется на одном из них
Дальше заводишь папку под школу и запускаешь сессию прямо в ней. Вставь три строки по одной, после третьей появится приглашение писать задачи словами:
mkdir shkola
cd shkola
claude
Первый запуск попросит войти в аккаунт
Вторая среда - GitHub, на нём страница будет жить бесплатно. Аккаунт заводится по инструкции GitHub: почта, пароль, подтверждение письмом, ни карты, ни оплаты. Репозиторий, то есть папку проекта на GitHub, и настройки трогаем позже, в разделе про публикацию
Правило безопасности: команды вида curl ... | bash из чужих постов не запускай - это право выполнить чужой код не читая. Ставь по документации разработчика или по гайду выше
Шаг 1. Программа: шесть уроков из своего опыта
Программа собирается из работы, которую ты уже делал: выписываешь 8-15 реальных задач за год и разбиваешь путь ученика на 6 уроков, по уроку в неделю - ни головы, ни чужих оглавлений
Открой Claude Code в папке shkola и вставь промпт целиком, заменив то, что в угловых скобках:
Я <кем работаю и что делаю руками>. За последний год я делал такие задачи:
<список из 8-15 реальных задач своими словами, без причёсывания>
Собери из этого программу курса на шесть уроков для человека, который
хочет научиться делать то же самое с нуля.
Требования:
1. Шесть уроков, каждый - один законченный кусок работы, а не тема
2. К каждому уроку напиши КРИТЕРИЙ ГОТОВНОСТИ: что у ученика лежит
на руках после урока (файл, страница, расчёт, готовый текст)
3. К каждому уроку отметь, что ученик делает РУКАМИ, а что смотрит
4. Отметь уроки, где я обязан показать свой реальный пример
5. Если из моего списка задач какого-то шага не хватает - скажи
прямо, какого, и не придумывай его за меня
Формат: таблица - номер, название урока, критерий готовности,
что делает руками. Сохрани в файл programma.md
Пятый пункт - самый важный: без него модель бодро допишет недостающий шаг из общих знаний, а на потоке окажется, что учить этому нечем
Критерий готовности превращает урок из рассказа в результат: не «урок 3 - работа с возражениями», а «урок 3 - у тебя пять готовых ответов на частые возражения покупателей». Второе ученик покажет в общем чате потока, первое - нет
Программа готова, когда по каждому уроку есть предмет на руках, урок готовится не дольше вечера, а первый даёт результат на первой неделе
Файл programma.md пригодится дважды: из него собирается блок «Программа» на лендинге и берутся заголовки постов в закрытом канале
Шаг 2. Площадка: закрытый канал вместо платформы
Площадка первого потока - закрытый канал в Telegram плюс бот-привратник на входе: уроки постами, файлы к постам, вопросы в связанный чат. Ученик уже умеет этим пользоваться, учить нечему
Собирается за пять минут руками, без единой команды:
- Создай канал: меню Telegram, «Создать канал», тип - частный
- Включи «Пригласительные ссылки», создай ссылку с заявкой на вступление
- Заведи группу для вопросов, прикрепи к каналу через «Обсуждение»
- Закрепи первый пост: программа, расписание, правила потока
Ссылка с заявкой - замок: человек подаёт заявку, а одобряет её бот после оплаты
Теперь про потолки, на которых новичка уговаривают купить платформу. Документация Telegram даёт такие границы: супергруппа держит «up to 200,000 people», у канала «unlimited audiences», один файл - «up to 2 GB each»
| Что сравниваем | Закрытый канал | Платформа, тариф «Старт» |
|---|---|---|
| Потолок людей | нет | 1 000 пользователей |
| Место под уроки | файл до 2 ГБ каждый | 20 ГБ на всё |
| Цена в месяц | 0 руб | 5 900 руб |
| Когда начинает списывать | никогда | с первого месяца, до продаж |
Таблица прокручивается вбок →
Честно про потери, и это не мелочи: у канала нет прогресса по урокам, тестов, сертификатов, статистики досмотров и автозакрытия доступа по дате. Нужен хоть один пункт как часть продукта - тогда платформа оправдана и куплена осознанно, а не из страха
На первом потоке ни один из пунктов не нужен: прогресс виден по домашним работам в чате, доступ закрывается вручную, потому что учеников тридцать, а не три тысячи. Канал остаётся у тебя навсегда, подписка - пока платишь
Шаг 3. Лендинг: одна страница за один заход
Страница продажи собирается за один заход в Claude Code, в один файл на 4,4 КБ: обещание с кнопкой, кому подходит, программа, что остаётся после потока, цена и частые вопросы. Ни конструктора, ни подрядчика, ни вёрстки руками
Промпт опирается на файл программы из Шага 1:
Собери одностраничный лендинг для моего курса в один файл index.html.
Программу возьми из programma.md в этой папке.
Шесть экранов по порядку:
1. Обещание одной строкой + подзаголовок + кнопка «Занять место в потоке»
2. Кому подходит - три пункта про ситуацию человека, не про меня
3. Программа - шесть карточек по неделям из programma.md
4. Что остаётся после потока - три пункта про предметы на руках
5. Цена, способ оплаты, кнопка оплаты
6. Частые вопросы - три пары вопрос-ответ
Технические требования:
- один файл, стили внутри <style>, ни одного внешнего запроса
- системные шрифты, никаких подключаемых шрифтов и картинок
- мобильная вёрстка первым приоритетом, ширина контента до 820px
- в подвале строка: самозанятый, имя, ИНН, почта для связи
- ссылку оплаты пока оставь заглушкой href="#"
Ничего не выдумывай про мой опыт и результаты учеников.
Если данных для блока не хватает - оставь понятную заглушку.
Последняя строка нужна по той же причине, что и в Шаге 1: без неё появятся «более 500 выпускников», которых у тебя нет
Прогнал этот промпт 14 августа и замерил результат: файл весит 4536 байт, на диске это 8.0K, внутри ровно шесть блоков-экранов - столько и заказывал в задании. И ни одной строки с обращением к чужому серверу - открывается мгновенно даже на слабом мобильном интернете
Кладётся такая страница на GitHub Pages бесплатно: «Published GitHub Pages sites may be no larger than 1 GB», мягкий лимит трафика «100 GB per month» (docs.github.com). Страница на 4,4 КБ упрётся в этот потолок примерно никогда
Готово, когда файл открывается двойным кликом в браузере, кнопка ведёт к блоку с ценой, а в подвале стоят твои реквизиты. Собственный адрес страница получает в следующем разделе
Публикация: адрес страницы в интернете
Файл становится сайтом за два захода: папка проекта на GitHub с включённым Pages и четыре A-записи домена у регистратора. Оба захода бесплатны, деньги тут только за домен - 169 руб за первый год
Сначала сам сайт, всё в браузере (quickstart GitHub Pages):
- Заведи папку проекта на GitHub и назови её
username.github.io, гдеusername- твой логин на GitHub - Внутри папки проекта:
Add file→Upload files, перетащи тудаindex.htmlиз папкиshkola, нажмиCommit changes Settings, в боковом меню раздел «Code and automation», пунктPages- В блоке
Build and deploymentвыбери источникDeploy from a branch, веткуmain, нажмиSave - Подожди и открой
username.github.io- документация обещает «it can take up to 10 minutes for changes to your site to publish»
Дальше свой домен вместо адреса на github.io. Настройка в двух местах, значения точные:
| Что настраиваем | Где | Что вписать |
|---|---|---|
| Источник публикации | Settings → Pages → Build and deployment | Deploy from a branch, ветка main |
| Свой домен | Settings → Pages → «Custom domain» | твой домен, кнопка Save (в ветке появится файл CNAME) |
| A-записи домена | панель регистратора, раздел DNS | 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153 |
Таблица прокручивается вбок →
Четыре адреса - не выдумка и не одна штука на выбор: документация GitHub Pages велит завести A-записи на все четыре. Одна запись вместо четырёх работает через раз и падает, когда GitHub уводит трафик на другой адрес
Проверка вместо веры. Вставь обе команды в то же окно Claude Code, где писал задачи раньше: первая покажет, куда сейчас смотрит домен, вторая - открылся ли сайт:
DOMAIN=shkola.ru # подставь свой домен
dig +short $DOMAIN
curl -sI https://$DOMAIN | head -1
Первая обязана вернуть те же четыре адреса, а вторая - строку, где сайт открылся. Новый адрес разлетается по интернету не мгновенно: у регистратора это занимает от нескольких минут до нескольких часов, пока весь интернет не запомнит твой домен
Готово, когда домен открывается с чужого телефона по https, а не по адресу вида username.github.io
Шаг 4. Бот выдачи доступа через BotFather
Бот регистрируется пятью сообщениями в BotFather, на выходе - токен, то есть строка-ключ, по которой программа управляет ботом. Платить не нужно:
«The Telegram Bot Platform hosts more than 10 million bots and is free for both users and developers»
документация Telegram Bot Platform, core.telegram.org
Регистрация по шагам, всё внутри Telegram:
- Найди в поиске
@BotFatherи открой чат - Отправь
/newbot - Пришли отображаемое имя, его увидят ученики, например «Школа: доступ»
- Пришли юзернейм, он обязан заканчиваться на
bot - Получи ключ вида
123456789:AA...и сразу убери его в надёжное место
Документация предупреждает дословно: Your bot token is its unique identifier - store it in a secure place, and only share it with people who need direct access to the bot. Ключ живёт в переменной окружения (это строка настроек самой машины, её видит только запущенная программа), не в коде и не в папке проекта. Версия платформы у Telegram - 10.2 (подтверждение в документации), боту первого потока хватило бы и куда более старой
Дальше возвращайся в Claude Code в папку shkola. Скопируй задание целиком и вставь в окно, ответом появится готовый файл бота:
Собери телеграм-бота выдачи доступа в закрытый канал.
Что он делает:
1. На /start приветствует и просит прислать номер заказа
2. Проверяет номер по списку оплаченных из файла oplaty.txt
(один номер в строке)
3. Если номер нашёлся - создаёт ОДНОРАЗОВУЮ пригласительную ссылку
в канал (member_limit=1) и присылает её
4. Если не нашёлся - вежливо просит проверить номер и написать мне
5. Помечает использованный номер, чтобы по нему нельзя было
получить вторую ссылку
Требования:
- токен читается из переменной окружения BOT_TOKEN,
в коде его быть не должно
- id канала читается из переменной окружения CHANNEL_ID
- напиши в README, как запустить это с нуля, включая то,
как добавить бота администратором канала
Два действия руками в Telegram: добавить бота администратором канала и дать право «Пригласительные ссылки» - без него бот ссылку не создаст и молча ошибётся
Готово, когда ты пишешь боту /start со второго аккаунта, присылаешь тестовый номер из oplaty.txt и получаешь ссылку, которая пускает в канал ровно один раз
Где бот работает, пока ты спишь
Бот живёт не в BotFather, а на машине, которая всегда включена: закрыл ноутбук - процесс умер, и человек, оплативший в два часа ночи, доступа не получил. Три честных варианта, где держать процесс:
| Где держать бота | Сколько стоит | Чем платишь |
|---|---|---|
| Свой компьютер | 0 руб | сон ноутбука и разрыв интернета гасят бота |
| Виртуальная машина | от 900 руб в месяц | полчаса на первую настройку |
| Никакого бота, руками | 0 руб | ты сам присылаешь ссылку, ответ занимает часы |
Таблица прокручивается вбок →
Про цену такой машины: у Timeweb Cloud минимальный тариф в списке на 14 августа - 900 руб в месяц при оплате за 12 месяцев, помесячно дороже. Боту первого потока хватает самой младшей машины: он спит и просыпается на сообщение
На такой машине процесс запускают не руками, а службой - тогда он поднимается сам после перезагрузки. Создай файл /etc/systemd/system/shkola-bot.service и вставь в него это:
[Unit]
Description=Shkola access bot
After=network-online.target
[Service]
WorkingDirectory=/root/shkola
EnvironmentFile=/root/shkola/.env
ExecStart=/usr/bin/python3 /root/shkola/bot.py
Restart=always
[Install]
WantedBy=multi-user.target
Ключ и id канала лежат в /root/shkola/.env, в самом коде их нет. Дальше вставь три команды подряд: первая включает службу, вторая показывает статус, третья - последние строки журнала:
systemctl enable --now shkola-bot
systemctl status shkola-bot
journalctl -u shkola-bot -n 20
Жив ли бот вообще, отвечает одна команда к платформе. Выполни её и посмотри на первое число ответа: 401 значит неверный ключ, 200 - бот на связи.
Я нарочно подсунул неверный ключ 14 августа и засёк время: ответ пришёл за 0,33 секунды, и это провал, а не успех - 401 значит «ключ не тот». Убрал ключ вовсе - ответ поменялся на «такой страницы нет»: значит переменную не передали совсем. На потоке оба выглядят одинаково, ученик пишет и не получает ничего. Живой ключ на той же команде отдаёт имя бота, так что проверяй её первой, до чтения кода
Шаг 5. Приём оплаты: что реально берут сервисы
Самозанятый принимает оплату по платёжной ссылке без юрлица, а сервис берёт 3,8% с каждого прошедшего платежа картой или через СБП. Ставки Продамуса и ЮKassa на 14 августа:
| Сервис | Подключение | Комиссия | Что нужно, чтобы начать |
|---|---|---|---|
| Продамус | 0 руб самозанятому, 10 000 руб ИП и юрлицу | 3,8% по картам и СБП, от 500 000 руб оборота 3,5% | статус самозанятого и реквизиты карты |
| ЮKassa | на странице тарифов не заявлено | «2,8% + 1% за чек» по картам, по СБП «Рассчитаем индивидуально» | договор и подключённая услуга чеков |
Таблица прокручивается вбок →
Две оговорки: пониженная ставка ЮKassa действует при «Чеках от ЮKassa», а комиссия считается «за каждый успешный платёж + НДС от суммы комиссии». У Продамуса льготный период - три месяца без оплаты до 100 000 руб оборота
Дальше налог: ставки НПД - «4% - с доходов от физических лиц» и «6% - с доходов от юридических лиц и ИП», лимит 2,4 млн руб в год. Ученики - физлица, значит 4%
С продажи места за 9 900 руб: эквайринг 3,8% забирает 376 руб, налог 4% с оставшихся 9 524 руб - ещё 381 руб, на руках остаётся 9 143 руб, то есть 92,4% от цены
Живой контур - пять действий: статус самозанятого в «Моём налоге», подключение к сервису, товар «Место в потоке» с ценой, ссылка на оплату вместо заглушки href="#" в кнопках лендинга из Шага 3
Чек пробивается в «Моём налоге» после каждой оплаты - здесь спотыкаются: деньги пришли, чек не выставлен, а он обязателен. Часть сервисов выставляет чек сама, проверь это при подключении
Приём денег отдельно и глубже разобран в гайде по кассе под PDF
Готово, когда ты платишь сам себе 100 руб по своей ссылке с чужой карты, деньги приходят, чек выставляется, а номер заказа ложится в oplaty.txt из Шага 4
Шаг 6. Первый поток: сколько нужно продать
Число мест считается от остатка с продажи: при цене 9 900 руб сначала деньги, потом деление, и только потом вопрос, реально ли столько набрать. Прогони тот же расчёт у себя со своей ценой - получишь такую же роспись до последней строки, только с твоими цифрами.
Собрал расчёт скриптом и прогнал 14 августа на ставках из Шага 5: цена места 9 900 руб, эквайринг 3,8% забирает 376 руб, налог 4% - ещё 381 руб, на руках с одной продажи остаётся 9 143 руб. Цель первого потока 300 000 руб, значит нужно продать 33 места, а выручка при этом будет 326 700 руб. Для сравнения: платформа за 5 900 руб в месяц за три месяца набора съела бы 17 700 руб ещё ДО первой продажи, а своя сборка с доменом обошлась в 169 руб
Тридцать три места - проверяемый вопрос: есть ли у тебя тридцать три человека, которым нужна твоя тема? Сотня подписчиков даёт такой шанс при обычной конверсии тёплой аудитории. Аудитории нет вовсе - сначала аудитория, потом поток
Абонентку разумно платить, когда убедился, что у тебя покупают: три месяца подписки забирают 17 700 руб до первого рубля, своя сборка - 169 руб
Четыре числа в скрипте меняются под твои условия: цена, комиссия, налог, цель потока. План на бумаге - бизнес-план на одну страницу
Дальше набор, механика скучная и от этого рабочая:
- Открываешь набор постом там, где тебя уже читают, и даёшь ссылку на лендинг
- Называешь дату старта и число мест, оба честные
- Каждый день недели набора показываешь один кусок будущего курса, а не уговариваешь
- Закрываешь набор в названную дату, даже если мест продано меньше
Четвёртый пункт нарушают чаще всего, и он же самый дорогой: продлил набор «ещё на три дня» - научил аудиторию, что твои даты ничего не значат
Стартуем, когда ссылка на оплату открывается с чужого телефона, бот выдал доступ на тестовой оплате, в канале лежит закреплённый пост с программой и расписанием, а первый урок написан
Что ломается на первом потоке?
Отказов шесть, все ловятся до старта одной тестовой оплатой с чужого телефона - от забытого member_limit=1 до заглушки href="#". Пройди путь ученика сам: открыл страницу, нажал кнопку, заплатил, получил ссылку, вошёл в канал
| Симптом на потоке | Причина | Лечение |
|---|---|---|
| Оплата прошла, доступа нет | номера заказа нет в oplaty.txt, бот его не находит | вносить номер сразу после уведомления об оплате |
| Ссылка в канал работает у всех подряд | ссылка создана без ограничения member_limit=1 | пересоздать одноразовой, старую отозвать в настройках канала |
Бот молчит после /start | процесс не запущен или BOT_TOKEN не подхватился | дёрнуть getMe: 401 - ключ не тот, «такой страницы нет» - переменной нет |
| Бот отвечает, но ссылку не даёт | нет права на пригласительные ссылки | выдать право в разделе «Администраторы» канала |
| Кнопка на лендинге никуда не ведёт | осталась заглушка href="#" из Шага 3 | подставить ссылку оплаты и проверить с телефона |
| Видео урока не грузится в канал | файл тяжелее 2 ГБ, потолок Telegram | сжать видео или разрезать урок на две части |
Таблица прокручивается вбок →
Седьмой отказ - не техника, а деньги: чек. Оплата пришла, а чек в «Моём налоге» не выставлен - и это неделями незаметно. Выставляй чек в тот момент, когда вносишь номер заказа в файл
Тишина в чате: люди купили, вошли и молчат - обычное поведение незнакомой группы, лечится постом с прямым вопросом и твоим ответом первым. Заложи час в день на поддержку первые две недели, иначе он съест время на урок
Что меняется, когда школа собрана руками?
Пропадает ежемесячный счёт: сборка стоит 169 руб за домен и процент с платежа, а платформа списывает 5 900 руб в месяц ещё до первой продажи
Пропадает и путаница: цена - в одной строке файла, доступ - в одной строке кода бота, программа - в programma.md. Не ждёшь поддержку и не ищешь галочку в чужом интерфейсе.
Заглянул в папку `shkola` 14 августа и увидел всю школу списком из четырёх файлов: `index.html`, `oplaty.txt`, `potok.py`, `programma.md`. Программа, бот, лендинг и расчёт - весит эта папка 20K на диске
Первый поток ты вытянул руками: номера вносил сам, чеки выставлял сам, доступы раздавал сам - на тридцати учениках так можно. Дальше начинаются настоящие затыки второго потока: что автоматизировать, где держать оплаты и переписку, как поднять поток из того, что уже есть, и что дать тем, кто прошёл первый и хочет продолжения
Шесть кирпичей на это не отвечают, тут нужна система
Источники
- Тарифы GetCourse - цена, лимит пользователей и диск по тарифам
- Тарифы Tilda Publishing - с какого тарифа доступен свой домен
- Тарифы Продамуса - подключение, комиссия по картам и СБП, льготный период
- Комиссии ЮKassa - ставка по картам и условие пониженного тарифа
- Налог на профдоход, ФНС - ставки 4% и 6%, годовой лимит
- Telegram Bot Platform - регистрация бота, хранение ключа доступа
- Telegram Bot API - текущая версия платформы
- Telegram FAQ - потолки канала и супергруппы, размер файла
- Лимиты GitHub Pages - размер сайта и трафик
- Quickstart GitHub Pages - папка проекта, включение Pages, срок публикации
- Свой домен на GitHub Pages - настройка домена и четыре A-записи
- Quickstart Claude Code - установка и первый запуск
- Регистрация домена, REG.RU - цена .ru на первый год
- Аренда виртуальной машины, Timeweb Cloud - минимальный тариф под круглосуточного бота
Памятка: онлайн-школа одного человека
От пустой папки до первого потока
Сохрани себе
- Claude Code стоит,
claude --versionотвечает номером - Программа: шесть уроков, у каждого критерий готовности
- Площадка: закрытый канал плюс заявка на вступление
- Лендинг: шесть экранов в файле, домен от 169 руб в год
- Публикация: папка проекта на GitHub, Pages включён, четыре A-записи домена
- Бот: ключ BotFather хранится отдельно от кода, а не внутри него
- Бот живёт: всегда включённая машина,
getMeотвечаетok:true - Оплата: ссылка самозанятого, комиссия 3,8%, чек в «Моём налоге»
- Расчёт: сколько остаётся с продажи и сколько мест до цели потока
- Проверка: тестовая оплата с чужого телефона проходит весь путь
Не только у меня
С нуля собирают такую же школу
Люди, которые заходили на Лагерь без единой проданной программы, к третьему дню показывают в чате свою же папку shkola с ботом и лендингом внутри
Три дня, бесплатно, начать можно с той же папки, что уже лежит у тебя на диске
Заявка в закрытый канал, одобряю сразу. Бот сам напишет первым и покажет, как забрать три дня Лагеря. Бесплатно
Частые вопросы
Сколько стоит открыть онлайн школу с нуля?
169 руб за домен в первый год плюс комиссия сервиса, на 14 августа это 3,8% у Продамуса. Площадка, бот и поддержка на Telegram бесплатны, готовая платформа для сравнения берёт от 5 900 руб в месяц
Нужно ли юрлицо, чтобы продавать свой онлайн курс?
Достаточно статуса самозанятого: подключение к Продамусу бесплатное, ставка налога - 4% с доходов от физлиц при лимите 2,4 млн руб в год
На чём вести уроки, если не покупать платформу?
На закрытом канале в Telegram: уроки постами, файлы к постам, вопросы в связанный чат. Потолка подписчиков нет, файл - до 2 ГБ. Взамен теряешь прогресс по урокам, тесты и сертификаты
Как выдавать доступ после оплаты без платформы?
Ботом из BotFather: принимает /start, проверяет номер заказа по файлу оплаченных, создаёт одноразовую ссылку в канал с member_limit=1. Регистрация бесплатна, ключ хранится отдельно от кода бота
Сколько человек нужно набрать на первый поток?
От остатка с продажи: при цене 9 900 руб, комиссии 3,8% и налоге 4% остаётся 9 143 руб, цель в 300 000 руб на руки закрывают 33 места