Skip to content

Pomodoro

A Pomodoro timer with configurable focus and break lengths, automatic long breaks, a session log, and an optional chime. The countdown is driven by wall-clock time, so it stays accurate in a background tab.

How Pomodoro works

  1. Set your focus and break lengths, or keep the classic 25/5.

  2. Start the timer and write.

  3. Take the break when it prompts you — long breaks come automatically.

  4. Review the session log to see what you completed today.

When to use Pomodoro

  • Splitting a long writing stretch into 25-minute focus blocks with a short break between each, rather than working until you burn out.
  • Keeping the countdown honest while you research in another tab — the deadline is a wall-clock timestamp, so a browser throttling the timer cannot make it fall behind.
  • Letting an automatic long break arrive after every fourth focus round instead of counting rounds in your head.
  • Glancing at the Today panel to see how many focus sessions and focus minutes you have already put in since midnight.
  • Working to a chime cue so you can look away from the clock and still know when a block ends.
  • Turning on auto-start so a break rolls straight into the next focus block without a manual press.

Examples

A classic four-round set

Result

Focus 25 → short break 5 → focus 25 → short break 5 → focus 25 → short break 5 → focus 25 → long break 15.

The round readout counts “Round 1 of 4” up to “Round 4 of 4”. The long break arrives because the fourth completed focus round is a multiple of the rounds-before-long-break setting, which defaults to 4.

The Today panel after three finished focus blocks

Result

Focus sessions: 3 · Minutes: 75.

Only focus phases dated today feed these two numbers. Break phases are still written to the session log, but they are left out of the focus-minutes total.

Editing the focus length mid-block

Input

A 25-minute focus phase is running with 11 minutes left; you change Focus to 30.

Output

The clock in front of you stays at 11 minutes and keeps counting down; the 30-minute length only applies the next time a focus phase starts.

How Pomodoro works under the hood

The countdown is driven by a wall-clock deadline, not a tick counter. When a phase starts, the tool records the moment it should end as a timestamp, then four times a second it recomputes the time left as that deadline minus the current clock. Browsers slow timers down in inactive tabs, but subtracting two timestamps is immune to that, so the displayed time cannot silently drift behind real time.

Phase order is worked out each time a focus block finishes. The tool counts how many focus rounds you have completed; if that count is an exact multiple of the rounds-before-long-break setting, the next phase is a long break, otherwise a short one. Every break, short or long, returns you to focus. The Skip control is a lighter shortcut — it simply flips between focus and a short break rather than computing the full next phase.

A session is written to the log only when a phase runs all the way to zero. Each record stores the date, the phase, its length in minutes, and the finishing time; the log keeps the most recent 100 entries and drops older ones. Pausing, resetting, or skipping a phase never records anything, so the log reflects completed work rather than intentions.

The end-of-phase chime is a short sine tone generated live through the Web Audio API rather than an audio file, so nothing is fetched and nothing autoplays until a phase actually completes. If the browser blocks the audio context the timer carries on without complaint — the sound is a cue you can switch off, never a dependency.

Common mistakes

  • Expecting the log and settings to follow you to another device. They live in this browser’s local storage under NeatKit’s origin, so a different browser, a private window, or another machine starts empty. There is no account and no sync.
  • Assuming a paused or reset block still counts. Only a phase that reaches zero is recorded, so a focus block you abandon halfway leaves no entry in the Today panel or the session log.
  • Reading the Skip button as “advance to the correct next phase”. It toggles between focus and a short break for convenience; it does not award a completed round or trigger a scheduled long break.
  • Thinking that changing the focus length resets the timer. Editing a duration mid-phase keeps the running deadline intact; the new value only takes hold from the next time that phase begins.

Frequently asked questions

All tools

Search NeatKit

Jump to a tool, a page, or change the theme.