Дата: 2026-03-29 Автор: Саня (продакт OpenClaw) Статус: Draft Основа: research.md
Drift — как течение. Привычка — это не спринт без права на остановку, а направление, в котором ты дрейфуешь. Пропустил день — течение замедлилось, но не исчезло.
Лена, 28 лет, тревожная отличница.
Пробовала Streaks, Habitica, Productive. Начинала с энтузиазмом, набивала 20-40 дней стрика, потом пропускала один день (болезнь, завал на работе, просто устала) — и стрик обнулялся в ноль. Чувствовала вину, злость на себя, бросала привычку совсем. Через месяц начинала заново. Цикл повторялся 3-4 раза, после чего удаляла приложение.
Лена не ленивая. Лена делает 80% дней. Но существующие трекеры говорят ей, что 80% = провал.
Одна функция: трекинг одной привычки с momentum-механикой вместо стриков.
Пользователь выбирает одну привычку. Каждый день — одна кнопка: "сделано". Всё. Нет списка из 12 привычек, нет категорий, нет настроек частоты. Одна привычка, одна кнопка.
Стрик — бинарная система: либо ты идеален, либо ты на нуле. 47 дней подряд -> пропуск -> 0 дней. Это не отражает реальность. Человек, который делал что-то 47 из 48 дней, не находится "на нуле".
Momentum — число от 0 до 100%, которое отражает силу привычки за скользящее окно последних 30 дней.
Механика:
- Каждый отмеченный день добавляет momentum
- Пропущенный день не обнуляет, а слегка снижает momentum
- Один пропуск при 47 отмеченных днях: momentum падает с ~98% до ~93%, а не до нуля
- Momentum восстанавливается за 1-2 дня, если вернуться к привычке
- Формула (упрощённо):
momentum = (отмеченных дней за 30 дней / 30) * 100%
Никаких "0 дней". Вместо этого:
- Круговой индикатор momentum — заполненность круга от 0% до 100%, плавные переходы цвета (холодный -> тёплый)
- Тепловая карта — последние 30 дней точками, где отмеченные дни — яркие, пропущенные — бледные (не красные, не перечёркнутые)
- Фраза дня — вместо "Стрик: 0 дней" пользователь видит: "Сила привычки: 93%. Ты в потоке."
Принцип: пропуск — это замедление, а не падение.
-
Один HTML-файл. Всё приложение — один файл, без серверной части, без сборки. Открыл в браузере — работает.
-
localStorage. Все данные хранятся в браузере. Нет аккаунта, нет регистрации, нет синхронизации.
-
Одна привычка. Пользователь задаёт название одной привычки при первом запуске. Нельзя добавить вторую, пока не удалишь текущую.
-
Одна кнопка в день. Главный экран — название привычки, momentum meter, кнопка "Сделано". Нажал — день отмечен. Повторное нажатие в тот же день — снимает отметку (undo).
-
Momentum meter 0-100%. Рассчитывается как процент отмеченных дней за последние 30 дней. Отображается как круговой индикатор с числом внутри.
-
Тепловая карта 30 дней. Под momentum meter — 30 точек/ячеек, по одной на день. Отмеченный день — яркая точка. Пропущенный — бледная. Будущие дни не показываются.
-
Позитивная фраза. Под momentum meter — короткая фраза, зависящая от уровня momentum:
- 0%: "Первый шаг — самый важный"
- 1-30%: "Начало положено"
- 31-60%: "Набираешь обороты"
- 61-80%: "Хорошая инерция"
- 81-99%: "Ты в потоке"
- 100%: "Полный momentum"
-
Нет стриков нигде в интерфейсе. Слова "стрик", "streak", "серия", "подряд" не должны появляться ни в UI, ни в коде.
-
Мобильный вид. Страница корректно отображается на экране 375px шириной (iPhone SE). Кнопка "Сделано" — крупная, удобная для тапа.
-
Сброс привычки. Есть скрытая кнопка/жест (например, долгий тап на название) для полного сброса: удаление привычки и всех данных. С подтверждением.
- Несколько привычек
- Бэкенд, API, база данных
- Авторизация и аккаунты
- Синхронизация между устройствами
- Уведомления и напоминания
- Экспорт/импорт данных
- Геймификация (очки, уровни, достижения)
- Социальные функции
- Тёмная тема (если не бесплатна по трудозатратам)
- PWA, Service Worker, оффлайн-режим
- Аналитика и телеметрия