Школьный дневник советского образца, который правится пальцем. Экрана настроек нет: страница «Расписание уроков» и есть редактор — тапаешь по клетке и вписываешь своё.
Открыть: make.trystampling.com/dnevnik
Без аккаунта, без интернета, без единого запроса наружу. Ставится на телефон как приложение.
Открываешь — неделя уже заполнена примером, чтобы было видно, как всё устроено. Тапаешь «Очистить и вписать своё», и дальше:
- Печатаешь «Математика», жмёшь Enter — каретка сама переходит к следующему уроку.
- «Русский», Enter. «Физра», Enter.
- Пустой Enter перепрыгивает в следующий день.
- Со второго дня печатать почти не надо: каждое введённое название встало в ленту подсказок над клавиатурой, дальше всё добирается тапами.
Шесть дней по пять уроков — примерно пятнадцать набранных слов и пятнадцать тапов. Кнопки «Сохранить» нет: то, что ты заполняешь, и есть расписание.
Дальше:
- Отметка — тап по клетке «отм.», снизу выезжает лист с крупными кнопками.
- Ошибся — тап по слову, снизу лист: свои предметы, «выше», «ниже», «убрать урок». Внизу семь секунд висит «Отменить». Вопроса «вы уверены?» нет нигде.
- Нет уроков в субботу — тап по названию дня, «У нас нет уроков в этот день». Записи не удаляются: передумаешь — вернутся тем же тапом.
- Крупнее — кнопка «Вид»: размер, межбуквенный и междустрочный интервал, шкала отметок.
Родителю прислали расписание в чат — скопируй и вставь в дневник кнопкой «Вставить расписание текстом». Разберётся само:
Расписание на понедельник:
1. Матем - учебник и тетрадь
2. Физ-ра (форма!)
станет Понедельник: Математика (примечание «учебник и тетрадь»), Физическая культура (примечание «форма!»). Словарь на 162 ключа знает «физ-ра», «Рус.яз», «окр мир», «Англ 38» с приклеенным кабинетом и даже «ОДНРК» с опечаткой школы.
Разборщик обычный, без нейросетей и без сети — работает офлайн и мгновенно. И он не достраивает: не подставляет день по умолчанию, не заполняет дырки в нумерации. Из «Добрый вечер! Сдаём деньги на тетради» урок не родится — такая строка честно попадёт в «не поняла». Таблицу с днями по колонкам и расписание целой параллели он не берётся разбирать и говорит об этом прямо, вместо правдоподобной чуши.
Настроил один раз — кинул ссылку в чат класса, и у всех то же расписание. Ставить и регистрироваться никому не надо.
Ссылка несёт только расписание уроков: ни отметок, ни домашних заданий, ни имени. Она
читается глазами — #r=Пн:Химия,Алгебра,Физика~Ср:Литература,История — и её можно
поправить руками. Тот, кто открыл, сначала видит, что придёт, и решает сам; отметки и
задания у него останутся своими.
На обложке — корешки. У мамы с двумя детьми два дневника на одном телефоне, у каждого своя заготовка: «Пятый класс» с пятибалльными отметками, «Началка со смайликами» с крупными клетками, «Взрослый» с делами вместо уроков и отметкой «сделано или нет».
Урок, убранный из расписания, в уже заполненной неделе не исчезает, а зачёркивается — страницы дневника нумеровали как раз затем, чтобы нельзя было вырвать лист с двойкой.
Шкала отметок тоже не про старание, а про результат: 5 — сделано и ушло наружу, 4 — сделано, но лежит у тебя, 3 — начато, 2 — не тронуто. Черновик в папке никогда не пятёрка.
Всё лежит на устройстве, в самом приложении. Ни сервера, ни аккаунта, ни аналитики: страница не делает ни одного запроса наружу — шрифты лежат в репозитории.
«Сохранить копию» отдаёт обычный текстовый файл. «Открыть копию» не заменяет, а соединяет: всё, что было на этом устройстве, остаётся; всё, что есть в файле, добавляется. Побеждает более поздняя правка каждой клетки по отдельности, причём сравнение идёт по счётчику документа, а не по часам — часы на детском планшете уходят, счётчик нет.
Записи первой версии переносятся сами при первом открытии.
index.html каркас страницы
style/paper.css бумажная дизайн-система: палитра, линовка, печать
core/core.js модель, патчи с отменой, хранилище, соединение копий, ссылка
core/parse.js разбор расписания из текста, словарь на 162 ключа
ui/app.js разворот и правка пальцем
fonts/ PT Sans Narrow, PT Serif, Caveat — кириллица, OFL
lab/enter-chain.html проба цепочки Enter на живой клавиатуре
v1.html первая версия, для истории
Ванильные HTML, CSS и JavaScript. Ни сборки, ни зависимостей, ни фреймворка.
Ключевое устройство: расписание и заполненная неделя — разные сущности. Правка расписания не трогает ни одной отметки, никогда. В первой версии этого разделения не было — расписание читалось один раз при запуске, и поправить его можно было только стерев все записи.
Главный жест продукта чуть не сломался о русскую экранную клавиатуру: при активной подсказке
Enter означает «подтвердить слово», а не «дальше», и приходит как keyCode 229 без
key="Enter". Поэтому логика висит не на keydown, а на beforeinput с типом
insertParagraph, и пропускается, пока идёт композиция. Проверить на своём устройстве можно
пробой lab/enter-chain.html — там журнал показывает, что реально
прилетает с клавиатуры.
Если работа идёт через Claude Code, расписание можно собрать из истории:
node tools/week-from-sessions.mjs --days 7Берёт сессии за последние дни, вытаскивает из каждой первую реплику человека как тему, схлопывает повторы, откладывает регулярные задачи в «повторение пройденного» и раскладывает остальное по предметам. Это черновик: машина видит, о чём шли разговоры, но не знает, что из этого важно.
MIT — код. Шрифты по SIL Open Font License 1.1, тексты лежат в fonts/.