Habits, reduced to their pure form.
Every streak, best run and completion rate is computed by an engine written entirely in PureScript — total functions, immutable state and a JSON API checked by the type system. Your data never leaves this tab.
New habit
Due today—
Done today—
Habits—
Your habits
No habits yet — add the first one above.
Engine source of truth
The UI talks to the engine through a single JSON bridge — the same bridge the test suite exercises. Today's date comes from your device; all logic is deterministic and pure.