Live2025
Better Productivity
Habits, counters and the metrics behind them
Visit Better Productivity
React · Vite · Convex · Clerk

The problem
Most habit trackers optimise for the streak, which measures compliance rather than change. They are good at making you feel accountable this week and bad at telling you whether the last six months moved anything at all.
Why it exists
I wanted the history to be the product. A tracker should be able to answer "is this actually working" with data, and that means treating every check-in as a measurement rather than a box.
How I solved it
Counters and habits write into a single reactive store, and metrics are derived from that history rather than stored alongside it — so adding a new view of the data never means backfilling. Built on Vite for a fast local loop, with Convex handling sync.