Why track time at all?
Intuition is a poor estimator of how long things take. A two-decade body of planning-fallacy research shows people consistently under-budget their time by 25–50% when they do not measure. A lightweight tracker that you start with one keystroke corrects that without the overhead of a heavyweight time-tracking SaaS — you see real numbers, week over week, and your future estimates start being honest.
1. The start/stop model captured honestly
Each entry is one task, optionally bound to a project, with two pieces of state: accumulated elapsed milliseconds and the timestamp at which the current run started. When you pause, the time since that timestamp is folded into the accumulated total and the running timestamp is cleared; when you resume, a fresh timestamp is taken. That separation is what makes totals trustworthy: the displayed time is always the accumulated total plus, if running, the live delta since the last start — never a single growing number that would survive a refresh badly.
2. Surviving reloads and background tabs
A running entry is serialised to localStorage on every state change and on page unload. On reload, the entry’s accumulated total already includes everything up to the moment you paused or reloaded; if it was left running, the difference between then and now is added the next time you pause or interact, so a timer that ran overnight genuinely reflects overnight. Most browsers throttle background timers, which is why the readout is recomputed from the wall clock on each render instead of relying on a continuously-firing interval — the displayed total stays correct even when the page was hidden.
3. Billing, CSV, and the “at a glance” project view
The project totals card buckets every entry by its project label and sums the live durations — the natural shape for a weekly invoice or a stand-up status. CSV export emits one row per entry with duration in both milliseconds (machine-friendly) and hours (billable-friendly), plus a timestamp, so you can pivot time by project and by day in any spreadsheet. Multiply hours by your rate, total per project, and you have a clean invoice ready to send.
Conclusion
Done right, the whole operation takes seconds, runs entirely in your browser, and never uploads a byte of your input. For why track time at all? — or anywhere a precise, in-browser result beats a heavier install — this tool is the right one.