Online stopwatch
Start, stop, lap, reset. Splits land in the list with the best and slowest highlighted. Export the whole session as CSV when you are done.
Say you are rehearsing a talk in three sections and press Lap at the end of each one. A finished session might look like this:
| Lap | Split | Cumulative | Marker |
|---|---|---|---|
| #1 | 00:01:02.10 | 00:01:02.10 | Best |
| #2 | 00:01:03.30 | 00:02:05.40 | |
| #3 | 00:01:04.80 | 00:03:10.20 | Slowest |
Each split is the time since the previous lap mark, and each cumulative value is the total on the clock at that mark, so the splits always add up to the last cumulative: 62.10 plus 63.30 plus 64.80 seconds equals 3 minutes 10.20 seconds. The best and slowest markers appear once you have at least two laps. On screen the newest lap sits at the top; the CSV export flips that to oldest first so the file reads chronologically.
Plenty accurate for anything a human does manually. The display ticks at 30 frames per second, which is more than enough to read centiseconds without your eyes turning to mush. Under the hood, the elapsed time is anchored to the wall clock at the moment you pressed start. That means when the browser throttles the page in the background or you switch to a different tab, no time is lost: the display catches up to the correct elapsed time the moment the tab comes back. The Page Visibility API tells us when to force a redraw so the seconds do not appear frozen for half a beat on tab return.
Every lap shows two numbers: the split (time since the previous lap) and the cumulative (total time at the lap mark). Once you have two or more laps, the fastest split is painted green and the slowest is amber. This is the same convention runners and swimmers use, and it makes pace patterns jump out: if every odd lap is green and every even is amber, you are probably going too hard on the openers. The CSV export keeps the same order as the on-screen list with the headers Lap, Split, Cumulative.
Anything where you want repeatable splits. Cooking, where you check on a sauce every two minutes. Public speaking practice, where each slide should clock in under thirty seconds. Workouts where you do not have a wearable. Workshop facilitation where the group rotates rooms. If you are doing deep work in fixed blocks instead, the Pomodoro timer handles that better. For a one-shot countdown to a meeting, hit the countdown maker.
The session is written to your browser's local storage as two pieces: the total time accumulated across earlier stop-and-resume intervals, and the timestamp of the moment you last pressed Start. Elapsed time is always the sum of those two, measured against the clock. That construction means a reload, a crash, or even a full browser restart does not stop the measurement: reopen the page and the display recomputes the true total, laps included. It also means the record stays on your device, in that browser. Reset is the only thing that wipes it.
Watch the splits when consistency is the goal: interval training, repeated experiment runs, per-question pacing in a mock exam. Watch the cumulative column when a total budget matters: a 20-minute presentation with five sections, a recipe with staged additions. If your splits creep upward lap after lap, as in the table above, you are slowing down even though every individual lap feels similar.
The display reads hours, minutes, seconds, and centiseconds, in the pattern 00:00:00.00. A centisecond is one hundredth of a second, so the final pair of digits rolls over a hundred times per second.
No. The elapsed time is anchored to the moment you pressed Start, not to a counter that has to keep incrementing. When the page becomes visible again the display is recomputed from the clock, so it shows the true total even after minutes away.
Yes. The running state, including the start timestamp and all laps, is saved in your browser's local storage. Reopen the page in the same browser on the same device and the count resumes at the correct elapsed time. Pressing Reset clears the saved session.
Three columns named Lap, Split, and Cumulative, one row per lap in oldest-first order, using the same time format as the screen. The file is named stopwatch-laps- followed by the date, and it downloads directly with nothing sent to a server.
Laps can only be recorded while the stopwatch is running. After you press Stop, the Resume button continues from the same total and the Lap button becomes available again.
For hand timing, yes: human reaction time when pressing the button is far larger than any browser overhead. The count is based on the system clock and the display refreshes about 30 times per second, so the tool is not the limiting factor.