Stopwatch & Pomodoro Timer
A precise, drift-free stopwatch with laps plus a configurable Pomodoro focus timer with work/break cycles and an end-of-phase chime.
Interactive Client Prototype Sandbox
Disclaimer: This free tool is provided “as is,” without warranties of any kind, and is for general informational purposes only — not professional, legal, financial, medical, tax, or engineering advice. Results may contain errors; verify anything important independently and use at your own risk. We accept no liability for any loss or damage arising from its use. See our Terms of Use for details.
Step-by-Step Guide
Switch between the Stopwatch and Pomodoro tabs.
Stopwatch: press Start to begin timing. Press Lap to record the current elapsed time as a lap split while the clock keeps running. Press Stop to pause and Start again to resume. Reset clears all laps and resets to zero. The stopwatch uses timestamps (Date.now()) rather than an interval counter, so it stays accurate even when the browser tab is backgrounded or throttled.
Pomodoro: set your focus session length (default 25 minutes), short break length (default 5 minutes), long break length (default 15 minutes), and the number of focus sessions before a long break (default 4). Press Start and the timer counts down through focus and break phases automatically, cycling until you stop it. An optional chime plays at each phase transition to signal the switch without requiring you to watch the screen.
Stopwatch: start the timer, press Lap at each milestone — lap 1 at 1:23.45, lap 2 at 2:47.89 — giving both split time and cumulative time per lap. Pomodoro with 25/5/15 settings over 4 cycles: the sequence is focus 25:00 → short break 5:00 → focus 25:00 → short break 5:00 → focus 25:00 → short break 5:00 → focus 25:00 → long break 15:00, then repeats.
Who it's for
Students, remote workers, athletes, and anyone using focus or interval timing.
Core Features
- Drift-free stopwatch (timestamp-based, not interval accumulation) with multiple laps.
- Configurable Pomodoro: focus, short-break, and long-break lengths plus cycles-to-long.
- Automatic phase cycling with an optional end-of-phase chime.
- Centisecond precision; cleans up timers when you leave the page.
🛡️ No tracking — your inputs, keys, and details never leave this client sandbox.
What is the Pomodoro Technique?
The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s (named after his tomato-shaped kitchen timer — 'pomodoro' is Italian for tomato). The standard cycle is 25 minutes of focused work followed by a 5-minute break, with a longer 15–30 minute break after every four focus sessions. The technique uses time-boxing to reduce the impact of interruptions and improve sustained focus. This tool implements configurable durations so you can adapt it to your own rhythm.
Why does the stopwatch use timestamps instead of intervals?
A naive stopwatch that increments a counter every 100ms using setInterval will drift over time because JavaScript's timer callbacks are not guaranteed to fire on schedule — the browser may delay them when a tab is backgrounded, the CPU is busy, or the event loop is blocked. This tool records the start time using Date.now() and computes elapsed time as the difference between the current time and the start time each frame. This approach is accurate to within the resolution of Date.now() (typically 1ms or better) regardless of timer callback scheduling.
Does the Pomodoro timer keep running when I switch tabs?
Yes. The countdown is computed from the phase start timestamp, not from a running counter, so backgrounding the tab does not affect the remaining time. The chime may not fire exactly on time if the browser has severely throttled the tab (some browsers limit backgrounded timers to 1-second resolution), but the displayed time remains accurate when you return to the tab.
Can I customize the Pomodoro durations?
Yes. The focus session length, short break length, long break length, and the number of sessions before a long break are all configurable. Many Pomodoro practitioners adjust these based on the type of work: 50/10 (50-minute focus, 10-minute break) for deep creative work; 15/5 for tasks requiring frequent context checks; or 90/20 mimicking the natural ultradian rhythm research suggests alternates between alertness and rest.
What happens when your focus timer lies to you
A stopwatch or focus timer that drifts — displaying three minutes past when it should have ended a Pomodoro session — undermines the one thing those tools are supposed to provide: a reliable time boundary. If the 25-minute work block routinely ends at 26 or 27 minutes because of JavaScript timer drift, the psychological contract of the technique (a defined, finite sprint) erodes. You start second-guessing the timer. You check your phone clock. The tool becomes a distraction rather than a focus aid. Timer accuracy matters specifically because the whole point of time-boxing is trust in the boundary.
Why drift happens and how this tool avoids it
JavaScript's setInterval and setTimeout are not guaranteed to fire on schedule. Browsers throttle background tabs to one callback per second (sometimes less) to preserve battery. If the CPU is busy, callbacks queue up and fire late. A stopwatch built by incrementing a counter on each callback fires will accumulate these delays as invisible errors. This tool instead records a start timestamp using Date.now() and computes elapsed time as (now − startTime) on each animation frame — the difference between two real wall-clock readings. No matter how many callbacks were delayed or missed, the next frame shows the correct elapsed time. The Pomodoro countdown works the same way: it computes remaining = phaseEndTimestamp − Date.now(), so backgrounding the tab for an hour and returning still shows the correct time.
The 25-minute default is a starting point, not a prescription
Francesco Cirillo developed the Pomodoro Technique using 25-minute intervals because that was what worked for his own study habits in the 1980s — using an actual tomato-shaped kitchen timer. Research in chronobiology suggests human attention cycles in 90–120 minute ultradian rhythms, with sustained focus for 45–90 minutes being the natural working window for many tasks. Many practitioners find 50/10 (50-minute focus, 10-minute break) or 90/20 more effective for deep work that requires sustained concentration, while 25/5 suits tasks requiring frequent context switches or learning new material in short bursts. The configurable durations in this tool exist because the right interval depends on the person, the task, and the time of day.