network-user
ко всем проектам
Платформа 9 Jun 2026 в проде

.учёба

DotLearn

Ускоренная подготовка к собеседованиям: сам выбираешь тему, а AI строит вокруг неё урок.

суть

Тему для урока формулируешь сам: произвольным текстовым запросом, хоть под конкретный вопрос с собеседования. После запроса начинается работа агента: lesson-forge проверяет тему на конфликты с каталогом и генерирует пакет, MDX-теорию и YAML-задачи, прошедшие автоматическую валидацию в браузерном рантайме. Всё это коммитится в репо, а не записывается в базу, поэтому тему можно форкнуть, расширить или исправить обычным pull request. Рядом с темами есть готовый банк из 368 вопросов с собеседований на 10 направлений, тоже с разбором «как отвечать», упражнениями и отдельным режимом флэшкарт.

Код выполняется в Web Worker, где при старте нейтрализуются 15 сетевых API: fetch, WebSocket, RTCPeerConnection, BroadcastChannel и другие. Написанный код не может ни отправить данные, ни открыть скрытый канал: это не политика, это архитектура. Прогресс, заметки, закладки и FSRS-карточки для интервального повторения живут в IndexedDB; бэкенд опционален, платформа ставится как PWA и работает офлайн. Из настроек: язык контента (RU/EN на лету), сложность упражнений, дневная цель, шрифт, размер текста и параметры Monaco-редактора.

Платформа изнутри

Семь шагов одной историей: от клонирования репозитория до экспорта прогресса. Иди стрелками ←/→ и смотри, как всё работает изнутри.

  • 34 темы в каталоге
  • 7 типов упражнений
  • визуализации и интерактивные анимации
  • local-first · без бэкенда
01 Клонируй и попроси

Запускаешь локально и просишь словами

Скачал репозиторий, поднял плеер одной командой и прямо в редакторе попросил ИИ-агента собрать тему. Без форм и кода: обычным языком.

в редакторе (Cursor / Claude Code):
lesson-forge добавь тему по основам ООП в Python для новичка
01 / 07

масштаб

размер и срок: что стоит за продуктом.

~3 недели от первого коммита до прод-харденинга
57 k+ строк кода: apps и packages
140 k+ строк контента: 34 темы в MDX и YAML
368 вопросов для собеседований в 10 категориях
7 типов упражнений · sql.js + Pyodide в WASM
50 коммитов до продакшн-релиза
380 автотестов (vitest)

архитектура

authoring generates glob glob Web Worker progress opt lesson-forge topics/ interview/ Zod contracts web · local-first lesson-engine sql.js + Pyodide IndexedDB NestJS API · opt

AI-скилл офлайн пишет темы и открывает PR (Cursor/Claude)

  • topics/ generates

Файловые темы: manifest, MDX-теория и YAML-задачи

  • web · local-first glob

Отдельный банк вопросов для собеседований: статьи и упражнения

  • web · local-first glob

Vite+React SPA, local-first; читает topics через glob

  • lesson-engine
  • IndexedDB progress
  • NestJS API · opt opt

Общие Zod-схемы: валидируют темы и DTO заявок

  • web · local-first
  • NestJS API · opt

Прогресс, заметки и FSRS-повторения в браузере (Dexie)

Опционально: заявки тем, защищённая админка, поиск

Загрузчик тем, раннеры упражнений и CLI-валидатор

  • sql.js + Pyodide Web Worker

Исполнение кода в Web Workers: SQL, Python, JS

Нажми на модуль: покажу его роль в системе.

стек

состав стека по слоям · 21
  • Язык 2
  • Фреймворк 5
  • Данные 4
  • Инфраструктура 4
  • Клиент 4
  • AI / ML 2

Язык

  • TypeScript 5 (strict)
  • Python (Pyodide)

Фреймворк

  • React 18
  • Vite 5
  • NestJS 10 (DDD)
  • TanStack Router
  • Tailwind

Данные

  • IndexedDB / Dexie
  • Zod contracts
  • MDX + Shiki
  • Elasticsearch

Инфраструктура

  • pnpm workspaces
  • Turborepo
  • Docker Compose
  • GitHub Actions CI

Клиент

  • sql.js (WASM)
  • Pyodide (WASM)
  • Monaco editor
  • Web Workers

AI / ML

  • lesson-forge skill
  • ts-fsrs (SRS)

что умеет

ключевые возможности продукта прямо сейчас.

Темы как код

Каждая тема хранится файлами в репозитории: теория в MDX, упражнения в YAML. Это не строка в базе, поэтому правку можно предложить обычным pull request.

Zod-схема проверяет манифест темы по 70+ правилам, от уникальности до паритета RU/EN. Если провалена хотя бы одна проверка, правка не мёрджится.

AI-агент lesson-forge

AI сам пишет курс (теорию и упражнения), валидирует его и решает свои же задачи в песочнице, прежде чем открыть PR.

Если эталонное решение AI не проходит в той же песочнице, что увидит ученик, PR не откроется. CI отдельно проверяет сборку теории и паритет вариантов.

Код в браузере

sql.js и Pyodide в Web Workers плюс Monaco-редактор: Python и SQL реально исполняются в браузере, без сервера.

Воркер стартует с отключёнными fetch, WebSocket и ещё десятком сетевых API, поэтому написанное физически не может уйти наружу. У редактора есть автодополнение по SQL-схеме и две авторские темы.

Семь типов упражнений

От квиза до Python-функции: каждый тип проверяется автоматически, а самый неожиданный, git-challenge, моделирует настоящий Git прямо в браузере.

Собственный движок на ~600 строк реально выполняет commit, branch, merge, rebase, stash, без риска что-то сломать в настоящем репозитории.

Банк вопросов для собеседований

368 вопросов в 10 категориях, от структур данных до system design, с разбором «как отвечать», плюс режимы флэшкарт и экзамена.

Вырос из открытого набора вопросов по Python и полностью переписан: своя структура статей, 988 собственных упражнений и диаграмм.

Карточки, которые сами напоминают

FSRS-алгоритм считает, когда карточку пора повторить: чем увереннее отвечаешь, тем реже её видишь, а начал забывать, значит она вернётся раньше.

Тот же принцип, что в приложениях для изучения языков. Отдельно есть heatmap активности за 14 недель, как на GitHub.

Local-first

Открывается на localhost без бэкенда, аккаунтов и интернета, а ставится как PWA для полного офлайна.

Backend нужен только для приёма заявок и админки. Всё остальное (тренажёр, прогресс, карточки) живёт в браузере на IndexedDB.

Сообщество и свой сервер

Заявки на темы принимаются через PR или форму, модерация идёт в админке с TOTP-двухфакторкой, а self-hosting разворачивается в Docker.

Форма ограничена 5 заявками в минуту с адреса. Для входа нужны пароль и одноразовый код, а после 5 промахов подряд аккаунт блокируется на 5 минут.

хронология

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

  1. 9 Jun 2026

    Local-first плеер

    6 типов упражнений, sql.js и Pyodide в Web Workers, Monaco, FSRS-повторения, TOTP-админка, i18n RU/EN.

  2. 11 Jun 2026

    Взрыв контента

    lesson-forge доказывает скорость: каталог растёт с 1 до 21 темы за два дня, 15 тем одним коммитом, плюс первые заготовки будущего банка вопросов для собеседований.

  3. 16 Jun 2026

    Контент и flashcards

    28 тем на RU+EN, седьмой тип упражнений git-challenge (детерминированный git-движок в браузере), flashcard-деки, lesson-forge + Zod-контракт, vitest-тесты, NestJS-бэкенд с заявками.

  4. 24 Jun 2026

    Прод-хардинг

    Sandbox-фиксы для Pyodide, CSP, pre-launch security hardening, CI gates (i18n, bundle, coverage, a11y).

ссылки