Online Stopwatch & Timer
A drift-free stopwatch (with laps/splits), countdown timer (with alarm) and Tabata interval timer — timestamp-anchored for accuracy after backgrounding or sleep. Run multiple named timers at once, see lap analytics (fastest/slowest/avg), export laps as CSV, use Pomodoro & Tabata presets, fire a Web Audio beep alarm, drive everything from the keyboard. State persists across refresh. 100% client-side.
About Online Stopwatch & Timer
A drift-free stopwatch (with laps/splits), countdown timer (with alarm) and Tabata interval timer — timestamp-anchored for accuracy after backgrounding or sleep. Run multiple named timers at once, see lap analytics (fastest/slowest/avg), export laps as CSV, use Pomodoro & Tabata presets, fire a Web Audio beep alarm, drive everything from the keyboard. State persists across refresh. 100% client-side. Everything runs locally in your browser — your data never leaves your device.
How to use
- Enter your input in the tool above.
- Adjust any options to your preference.
- Use the Copy or Download buttons to save the result.
- Everything happens locally — your data never leaves your browser.
FAQ
How does the stopwatch stay accurate when the tab is backgrounded?
We never rely on setInterval counting ticks. Instead each timer anchors to a wall-clock timestamp (Date.now()) when it starts or resumes, and we recompute the elapsed time on every paint. Even if the browser throttles the timer in the background, when the tab regains focus the elapsed value snaps to the correct drift-free total. Pausing accumulates the pre-pause elapsed time so resume continues exactly where you left off.
Can I run multiple timers at once?
Yes. Add as many named timers as you like — stopwatches, countdowns and Tabata timers can all run simultaneously, each with its own name and color. Every timer is independent: pause one without affecting the others. All running timers are persisted to localStorage so a refresh or accidental close restores them in their current state.
What is a Tabata timer and how does it work here?
Tabata is a high-intensity interval training format: 8 rounds of 20 seconds work followed by 10 seconds rest (4 minutes total). This tool implements it with a configurable work/rest/rounds structure, advancing the round counter automatically, alternating phases, and beeping at each transition. Standard Tabata (20s/10s × 8) is a one-click preset, as is Pomodoro (25m work / 5m break × 4 rounds).
How do the lap times and analytics work?
On a stopwatch, pressing Lap records the current elapsed time. Each lap stores its split (time since the previous lap) and its cumulative total. After two or more laps we show fastest, slowest and average split automatically. You can export the full lap table as CSV or plain text for coaches, race timing or personal logs.
What extra features does this tool have compared to others?
(1) Drift-free timestamp-anchored stopwatch. (2) Countdown timer with audible alarm. (3) Tabata interval timer with rounds/phases. (4) Multiple concurrent named timers with colors. (5) Lap recording with split + cumulative times. (6) Lap analytics: fastest / slowest / average. (7) Pomodoro presets (25/5, 50/10, custom). (8) Tabata presets (20/10 × 8). (9) Web Audio API beep alarm (no audio file needed). (10) Keyboard shortcuts (Space start/pause,L lap, R reset). (11) State persists across refresh (localStorage). (12) Lap table export as CSV and TXT. (13) Shareable `?d=25m` link. (14) Tab title shows live remaining/elapsed time. (15) 100% offline, no network, no upload.
Is my data sent anywhere?
No. All timing runs locally using the browser's clock and Web Audio API. Timer state and lap history are stored in localStorage on this device only.
Related tools
.bashrc / .zshrc Alias & Config Manager
Build shell aliases, functions, exports, and PATH edits in a visual editor, then export a clean, commented .aliases file sourced from both .bashrc and .zshrc — with shadowing detection against shell builtins and common CLI tools, function suggestions when args are needed, starter packs (git, docker, kubectl, navigation, safety, ls, dev, devops, data science), import of existing rc files, dedupe, history (localStorage), and shareable URL. 100% client-side.
Add / Subtract Date Calculator
Add or subtract years, months, weeks, days, hours, minutes and seconds from a starting date/time. Calendar-day or business-day mode with custom weekend + holiday list. Month-end policy toggle (clamp to last day vs overflow). Repeat/series mode (e.g. every 2 weeks x 10) with CSV export. Shareable URL. 100% client-side.
Age Calculator
Calculate exact age from a birth date in calendar years/months/days (no negative-day bugs) plus totals in months/weeks/days/hours/minutes/seconds. Next-birthday countdown with weekday. Feb-29 birthday policy toggle. Milestones (1,000 days, 10,000 days, 1 billion seconds). Zodiac sign + Chinese zodiac. Age gap comparison. Shareable URL. 100% client-side.