← Pivotal-Hub pivotalpath.co.uk ↗
Office · Time

Countdown / Pomodoro Timer

A countdown you can throw on the big screen so a meeting actually ends on time, and a pomodoro cycle for when it is just you and the work. Drift-free timing, a proper alert, and a session log you can paste into the notes. Nothing leaves your machine.

When would I use this?

Timeboxing the standup so it does not become the hour-long one. Putting a fifteen-minute countdown on the shared screen during a workshop, so nobody has to be the person who says “we should wrap up”. Running a demo to a hard stop. Or, on your own: twenty-five minutes of focus, five minutes off, repeat — with the browser doing the counting instead of you glancing at the clock. Everything happens inside this page: no account, no notifications permission, no network requests, and nothing written to disk. Close the tab and the timer forgets it existed.

01 Set up the timer

countdown · 10:00
How long?
Understands 25 (minutes), 12:30 (mm:ss), 1:45:00 (hh:mm:ss), 90s, 1h 20m and 1.5h. Maximum 24 hours.
Shown large in full-screen mode, so the room knows what the clock is for.
Runs entirely in your browser — nothing is uploaded.

02 Options

Every sound is generated by oscillators? in the browser — there is no audio file anywhere in this page. Sound can only start after you click something, which is a browser rule, not ours.
60%
The dial and the digits change colour, and the words Nearly up appear — colour is never the only signal. 0 switches the warning off.
Between segments
Off means the timer waits at zero until you press Continue — handy if a break should not start until you have actually stopped typing.
Display
The tab title lets a backgrounded tab still show where the timer is up to.
Projected finish clock
Starts on whichever your device uses.
Timer theme
Dark is easier on a projector in a dim room.
Motion

03 Run it

Not started

Ready

remaining
Press start — the projected finish time appears here.
Space start / pause R reset S skip segment F full screen Esc leave full screen

Session log

Every segment that finishes lands here with the time it finished. Close the tab and it is gone — nothing is written to disk.

    The summary is plain text for a notes app or a chat message. The CSV? opens in any spreadsheet; the Markdown is a table you can paste into Slack, Notion or a pull request.

    How the timing actually works

    • One monotonic clock, read every time. The remaining time is recomputed from performance.now()? against the moment you pressed start. Nothing subtracts a second from a running total, so a slow frame or a busy machine cannot make the timer lose time.
    • Ticks land on the boundary. Each redraw is scheduled for the exact moment the displayed number changes, rather than every 1000 ms and hoping. The digits neither stutter nor skip a second.
    • A hidden tab is caught up, not guessed at. Browsers slow timers right down in a background tab. When the tab comes back the applet asks the clock what time it is now and works out everything that should have happened — including several pomodoro segments in a row — logging each with the time it really finished, and firing the finish alert exactly once.
    • Sleep is detected. If the monotonic clock and the wall clock disagree by more than two seconds, the machine was suspended; the wall clock wins, the gap is added on, and the page tells you it happened rather than quietly being wrong.
    • Pause is exact. Paused time is accumulated as a real measured duration, not read back off the digits, so pausing does not shave or add fractions of a second.
    • No notifications, on purpose. The Notification API needs a permission prompt and hands the page a persistent identifier-shaped capability. A sound, a colour change, a word and the tab title do the same job with nothing to grant.
    • Nothing leaves the browser. No network requests, no analytics, no cookies, and nothing written to browser storage — not even your settings. Refresh the page and it forgets everything.