🍅 Pomodoro Timer
ℹ️ What this tool does & how it works
Francesco Cirillo picked 25 minutes in the late 1980s for the boring, correct reason: a kitchen timer that size fits a task you can start when you do not feel like starting anything. The technique is the cycle — work, short break, a long break after every fourth pomodoro. This page keeps the countdown as an end timestamp compared against Date.now(), not a counter that decrements: browsers throttle background timers to roughly one tick per second, but a timestamp survives any throttle, so leaving the tab cannot make a 25-minute block silently become 25 minutes and 40 seconds.
Why the timer is a timestamp, not a countdown
A counter that subtracts one every 250 ms loses accuracy the moment the browser puts the tab to sleep: background timers are throttled to roughly one tick a second in most engines, and a frozen tab may receive nothing at all until it is focused again. Store the end instant instead and the worst case becomes a display that updates late, never a minute that goes missing — the same reason the lap stopwatch above works and a naïve countdown app does not. As for 25 itself: it is a convention, not a finding. The measured ultradian rhythm is nearer 90 minutes, and novices do better with short cycles they actually finish than with long ones they abandon — which is the honest argument for keeping the defaults and editing them only when a whole day of pomodoros says otherwise.