Гайд · свой онлайн курс · август 2026

Открыть онлайн школу одному: 6 кирпичей и первый поток

Документация GitHub Pages: меню плюс-кнопки с пунктом New repository, откуда начинается публикация своей страницы
Официальная документация GitHub Pages, реальный экран, снято 26 августа 2026

Свой онлайн курс упирается не в знания, а в шесть технических кусков: программа, площадка, лендинг, бот, приём оплаты и поддержка. Ниже все шесть по порядку, с реальными командами и ценами на 14 августа 2026 - минимальная сборка стоит 169 руб за домен, а не 5 900 руб в месяц за готовую платформу

Онлайн-школа одного человека - это шесть кирпичей: программа, площадка, лендинг, бот, приём оплаты и поддержка. Минимальная сборка обходится в 169 ₽ за домен плюс комиссия эквайринга с продажи: площадка - закрытый канал в Telegram, бот - бесплатный BotFather, лендинг - одна страница, собранная в Claude Code

Всю школу от идеи до первого ученика собираешь за один вечер прямо по ходу статьи. Как та же сборка выдерживает второй поток - разбираем на ИИ-Лагере

Забрать путёвку в ИИ-Лагерь

Кнопка ведёт в мой закрытый канал. Жмёшь «Подать заявку», впускаю сразу, бот пишет в личку и отдаёт путёвку. Бесплатно

Из чего состоит онлайн-школа одного человека?

Онлайн-школа одного человека собирается из 6 кирпичей: программа, площадка, лендинг, бот выдачи доступа, приём оплаты и поддержка, а минимальная сборка стоит 169 руб за домен плюс процент с продажи. Убери любой кирпич - и цепочка «увидел страницу → учится» рвётся ровно в этом месте

Вся сборка и вся смета одной таблицей:

КирпичЧто нужно на стартеМинимальный вариантНа чём собратьСколько стоит
Программашесть уроков и критерий готовности к каждомутекст в одном файле, видео пишутся по ходу потокаClaude Code по списку своих задач0 руб
Площадкаместо, где лежат уроки, и вход по спискузакрытый канал в TelegramTelegram, вступление по заявке0 руб
Лендингстраница с обещанием, программой и кнопкойшесть экранов, один файлClaude Code, публикация на GitHub Pagesдомен 169 руб за первый год
Ботвыдача доступа после оплатыответ на /start и одноразовая ссылкаBotFather и Claude Code0 руб
Приём оплатыссылка на оплату для любого покупателяплатёжная ссылка самозанятогоПродамус или ЮKassa3,8% с платежа
Поддержкаместо, где отвечают на вопросыобщий чат потокаTelegram0 руб

Таблица прокручивается вбок →

Цены на 14 августа: домен .ru - 169 руб за первый год по акции регистратора, 226 руб за продление; Продамус самозанятому - бесплатно при комиссии 3,8%

Готовая платформа делает то же самое кнопками и берёт 5 900 руб в месяц на тарифе «Старт» при потолке в 1 000 пользователей - счёт с первого месяца, продажа когда придётся

Страница тарифов GetCourse с ценами: 5900 рублей за тариф «Старт» и потолок 1000 пользователей на нём
Живой прайс 14 августа: абонентка списывается с первого месяца, до всякой продажи

Вся школа после сборки умещается в одну папку на 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 руб помесячно, а бесплатный тариф оставляет адрес чужим. Даже самый дешёвый путь конструктора упирается в подписку ровно там, где нужен нормальный адрес страницы

Страница тарифов Tilda с планами Free, Personal и Business: свой домен подключается только с тарифа Personal
Тарифы Tilda 14 августа: домен и экспорт кода начинаются со второго уровня, не с бесплатного

Шесть уроков и поток - обязательство на несколько недель. Сил пока нет? Проверь тему малой кровью: мини-продукт за один вечер - та же логика, оттуда до потока один шаг

Нельзя пропускать три вещи: критерий готовности урока, кнопку оплаты и одноразовую ссылку в канал - без них ученик не поймёт, зачем он здесь, не заплатит или уведёт закрытый канал наружу в первый же день

Шаг 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 плюс бот-привратник на входе: уроки постами, файлы к постам, вопросы в связанный чат. Ученик уже умеет этим пользоваться, учить нечему

Собирается за пять минут руками, без единой команды:

  1. Создай канал: меню Telegram, «Создать канал», тип - частный
  2. Включи «Пригласительные ссылки», создай ссылку с заявкой на вступление
  3. Заведи группу для вопросов, прикрепи к каналу через «Обсуждение»
  4. Закрепи первый пост: программа, расписание, правила потока

Ссылка с заявкой - замок: человек подаёт заявку, а одобряет её бот после оплаты

Теперь про потолки, на которых новичка уговаривают купить платформу. Документация Telegram даёт такие границы: супергруппа держит «up to 200,000 people», у канала «unlimited audiences», один файл - «up to 2 GB each»

Ответ Telegram FAQ про размер сообществ: группа до 200 000 человек, у канала аудитория unlimited
Тот же FAQ 14 августа, кадр с цифрами: 200 000 человек в группе и unlimited у канала
Что сравниваемЗакрытый каналПлатформа, тариф «Старт»
Потолок людейнет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 с лимитами: размер сайта до 1 ГБ и мягкий лимит трафика 100 ГБ в месяц
Тот самый лимит из документации 14 августа: страница на 4,4 КБ упрётся в него примерно никогда

Готово, когда файл открывается двойным кликом в браузере, кнопка ведёт к блоку с ценой, а в подвале стоят твои реквизиты. Собственный адрес страница получает в следующем разделе

Публикация: адрес страницы в интернете

Файл становится сайтом за два захода: папка проекта на GitHub с включённым Pages и четыре A-записи домена у регистратора. Оба захода бесплатны, деньги тут только за домен - 169 руб за первый год

Сначала сам сайт, всё в браузере (quickstart GitHub Pages):

  1. Заведи папку проекта на GitHub и назови её username.github.io, где username - твой логин на GitHub
  2. Внутри папки проекта: Add fileUpload files, перетащи туда index.html из папки shkola, нажми Commit changes
  3. Settings, в боковом меню раздел «Code and automation», пункт Pages
  4. В блоке Build and deployment выбери источник Deploy from a branch, ветку main, нажми Save
  5. Подожди и открой username.github.io - документация обещает «it can take up to 10 minutes for changes to your site to publish»

Дальше свой домен вместо адреса на github.io. Настройка в двух местах, значения точные:

Что настраиваемГдеЧто вписать
Источник публикацииSettingsPagesBuild and deploymentDeploy from a branch, ветка main
Свой доменSettingsPages → «Custom domain»твой домен, кнопка Save (в ветке появится файл CNAME)
A-записи доменапанель регистратора, раздел DNS185.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 Bot Platform с описанием возможностей ботов и подтверждением бесплатности
Та же страница 14 августа: платформа бесплатна и для владельца бота, и для его пользователей

Регистрация по шагам, всё внутри Telegram:

  1. Найди в поиске @BotFather и открой чат
  2. Отправь /newbot
  3. Пришли отображаемое имя, его увидят ученики, например «Школа: доступ»
  4. Пришли юзернейм, он обязан заканчиваться на bot
  5. Получи ключ вида 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 руб

Четыре числа в скрипте меняются под твои условия: цена, комиссия, налог, цель потока. План на бумаге - бизнес-план на одну страницу

Дальше набор, механика скучная и от этого рабочая:

  1. Открываешь набор постом там, где тебя уже читают, и даёшь ссылку на лендинг
  2. Называешь дату старта и число мест, оба честные
  3. Каждый день недели набора показываешь один кусок будущего курса, а не уговариваешь
  4. Закрываешь набор в названную дату, даже если мест продано меньше

Четвёртый пункт нарушают чаще всего, и он же самый дорогой: продлил набор «ещё на три дня» - научил аудиторию, что твои даты ничего не значат

Стартуем, когда ссылка на оплату открывается с чужого телефона, бот выдал доступ на тестовой оплате, в канале лежит закреплённый пост с программой и расписанием, а первый урок написан

Что ломается на первом потоке?

Отказов шесть, все ловятся до старта одной тестовой оплатой с чужого телефона - от забытого 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 на диске

Первый поток ты вытянул руками: номера вносил сам, чеки выставлял сам, доступы раздавал сам - на тридцати учениках так можно. Дальше начинаются настоящие затыки второго потока: что автоматизировать, где держать оплаты и переписку, как поднять поток из того, что уже есть, и что дать тем, кто прошёл первый и хочет продолжения

Шесть кирпичей на это не отвечают, тут нужна система

Источники

Памятка: онлайн-школа одного человека

От пустой папки до первого потока

Сохрани себе

  • 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 места