Mito
Задачи, таймер, календарь с семантическим зумом и AI-ментор в одном local-first приложении.
- Роль
- Аналитика, архитектура, разработка в Claude Code
- Период
- 2026.09 → …
- Статус
- Production
- Стек
- React · TypeScript · Zustand · Dexie / IndexedDB · Supabase · Node.js · LLM API · GitHub Actions
Интерфейс
01 / 08Задача
Люди, которые хотят научиться новому, начинают на волне мотивации — составляют расписание, ведут заметки — и через несколько дней бросают. Планирование отнимает силы, а план и реально потраченное время хранятся в разных местах.
Решение
Mito собирает в одном приложении задачи, календарь (план) и таймер (факт) и показывает, насколько план совпал с реальностью. Планирование можно поручить AI-ментору — он предлагает расписание, а пользователь решает, что добавить.
Личный проект — в нём я и заказчик, и аналитик, и архитектор. Код написан в Claude Code по дорожной карте из 11 этапов с журналом архитектурных решений; каждый этап закрывался моей проверкой.
Цели
- 01Задачи, план и фактическое время — в одном месте
- 02Работа без интернета и синхронизация между устройствами
- 03План дня одной кнопкой — но в календарь только после подтверждения
Функции
Ключевые требования
| ID | Требование | Приоритет |
|---|---|---|
| FR-01 | Изменения сохраняются на устройстве и не теряются без интернета. | Must |
| FR-02 | Правка на одном устройстве появляется на других за несколько секунд. | Must |
| FR-03 | Пользователь видит и меняет только свои данные. | Must |
| FR-04 | План от ментора попадает в календарь только после подтверждения. | Must |
| FR-05 | Если модель не ответила, запрос уходит следующей модели. | Should |
| NFR-01 | Ключи AI-моделей только на сервере, IP-адреса — только в виде хеша. | Must |
| NFR-02 | Лимит ментора: 10 запросов в минуту и 60 в сутки с адреса, 800 в сутки на всех. | Must |
| NFR-03 | Браузер обращается только к домену Mito. | Must |
| NFR-04 | Выкладка только после проверки типов, линтера и тестов. | Should |
Сценарии
- 01Меняет задачу на телефоне — изменение сохраняется на устройстве и встаёт в очередь
- 02Через 0,8 с очередь уходит на сервер одним запросом
- 03Сервер сохраняет версию, если она новее серверной
- 04Ноутбук получает уведомление и забирает изменения
- 01Нажимает «Составить план» и пишет пожелание
- 02Сервер ментора проверяет лимит и спрашивает модель
- 03Сервер убирает из ответа блоки с ошибками
- 04Пользователь выбирает блоки — они попадают в календарь
Ход работы
- 2026.09Этапы 0–4: основаДизайн-система, слой данных на IndexedDB, задачи, таймер, календарь.
- 2026.09Этапы 5–6: зум и аналитикаКалендарь с непрерывным масштабом от дня до года; план и факт; свои графики.
- 2026.09Этап 7: аккаунты и синхронизацияSupabase, очередь изменений, серверные ревизии, Realtime. Первая выкладка на VPS.
- 2026.09Этап 8: AI-менторСвой Node-сервис, цепочка моделей, план дня, чат и брифинг.
- 2026.10Этап 9: ментор обученияЦели с этапами, еженедельные встречи, проверка знаний, режимы «Ментор» и «Ассистент».
- ДалееЭтапы 10–11PWA и производительность, затем Windows и Android на Tauri.
Сложности
Результат
Приложение работает в продакшене — гостевой режим, аккаунты с синхронизацией, AI-ментор на реальных моделях. Готово 9 этапов из 11, около 20 тысяч строк TypeScript и 160 автотестов.
Дальше — PWA и десктопная и мобильная версии на Tauri.