Skip to main content
L
Loopaloo
Buy Us a Coffee
All ToolsImage ProcessingAudio ProcessingVideo ProcessingDocument & TextPDF ToolsCSV & Data AnalysisConverters & EncodersWeb ToolsMath & ScienceGames
Guides & BlogAboutContact
Buy Us a Coffee
L
Loopaloo

Free online tools for developers, designers, and content creators. Your files are processed in your browser and are never uploaded - no accounts required. A few network utilities (like What's My IP and Currency Converter) call public APIs to do their job and say so on their pages.

support@loopaloo.com

Tool Categories

  • Image Tools
  • Audio Tools
  • Video Tools
  • Document & Text
  • PDF Tools
  • CSV & Data
  • Converters
  • Web Tools
  • Math & Science
  • Games

Company

  • About Us
  • Contact
  • Blog
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

Support

Buy Us a Coffee

© 2026 Loopaloo. All rights reserved. Built with privacy in mind.

Privacy|Terms|Disclaimer
  1. Home
  2. Web Tools
  3. Pomodoro Timer
Add to favorites

Pomodoro Timer

Work and break cycles on a monotonic clock, so a session is not ended by the system clock changing, with the running session and today figures kept if you reload.

Runs locally in your browserMore web toolsJump to full guide

Related reading

  • The Pomodoro Technique: A Science-Backed Approach to Focused Work11 min read

Initializing in your browser…

You might also like

Timer & Stopwatch

A stopwatch and a countdown on a monotonic clock, so neither loses time to a pause, a background tab or the system clock changing. Lap splits that add up, and a countdown that survives a reload.

Subnet Calculator

Every fact about an IPv4 or IPv6 block, plus splitting, merging, range to CIDR, and which special-purpose range an address falls in

What's My IP

Your public IP address, checked against the IANA special-purpose registries so a private or shared address is named rather than called public, with the location shown as the estimate it is.

Pomodoro Timer: a worked example

You are deep in a refactor and want a focus rhythm that forces short recovery breaks without you watching a clock.

Configured cycle

Focus 25m · Short break 5m · Long break 15m after 4 focuses
What Pomodoro Timer produces

Planned afternoon

13:00 Focus  (25m) → 13:25 Break (5m)
13:30 Focus  (25m) → 13:55 Break (5m)
14:00 Focus  (25m) → 14:25 Break (5m)
14:30 Focus  (25m) → 14:55 Long break (15m)
Focused work this block: 1h 40m

The Pomodoro technique trades marathon sessions for fixed focus/break intervals so attention stays high and breaks are non-negotiable. The timer auto-advances between phases and tracks completed focuses toward the long break, so you only have to follow the prompt, not do the bookkeeping.

A focus timer that keeps the session

Work and break cycles read from a monotonic clock, so a session is not ended by the system clock changing. The running session and today figures are kept in this browser, so a reload picks up where you were.

Key features

  • The countdown read from performance.now(), which is monotonic, so a daylight saving change or an NTP correction does not end a session
  • The running session and today figures written to this browser and picked up on a reload
  • A saved value of the wrong shape refused rather than breaking the page
  • Every setting range checked, with anything out of range clamped and named on screen
  • Minutes credited are the minutes actually run, so a session ended early counts what it was
  • A finished session that stays on the screen and says how late the page noticed if the tab was asleep
  • Statistics that reset at midnight local time, since the panel says today
  • Four presets, auto-start for breaks and for work, a chime and an optional notification
  • The next four sessions listed, so the cycle is visible rather than a surprise

How to use

  1. 1Press play. The default is a 25 minute focus session, and the dots under the ring show how many are left before a long break.
  2. 2Open the settings to change the lengths, the number of sessions before a long break, and whether the next session starts by itself.
  3. 3Leave the tab or reload it. The session is kept and picked up from where it was.
  4. 4Skip a session to move on: it counts toward the set and credits the minutes it actually ran.
  5. 5Share the link to hand somebody your settings.

What a focus timer has to survive

**The system clock changing.** The version that shipped before September 2026 counted down against `Date.now()`, the wall clock, and the wall clock jumps: daylight saving moves it an hour twice a year and the time daemon steps it whenever the machine has drifted. Measured on 2026-09-04, a running 25 minute session given a one hour clock step did not just show a wrong number, it ENDED: the display went from 24:59 to 05:00 and the page moved straight to a short break, crediting a pomodoro nobody had worked. This version reads `performance.now()`, which is monotonic and is specified never to jump, and the same measurement leaves the session exactly where it was.

**A reload.** Nothing was written down. A session two and a half minutes into a one minute countdown went back to 01:00 on a reload, and the completed pomodoros, the minutes worked and both streaks were component state that vanished with it. Here the running session and today figures are written to this browser, picked up with the elapsed time taken off, and a saved value of the wrong shape is refused rather than breaking the page.

**A link somebody typed.** Every setting was read with `parseInt(x) || default`, which swallows a zero, truncates a decimal and accepts anything else. `?workDuration=0` opened at 25 minutes, `?workDuration=8.5` opened at 8, `?sessionsBeforeLongBreak=0` made every break a long one because a counter that must reach zero already has, and `?workDuration=-5` and `?workDuration=99999` rendered clocks reading "-5:00" and "99999:00", a session whose deadline is already past and one lasting sixty nine days. Every setting is now range checked and anything outside its range is clamped and named on the page.

**A background tab.** A browser throttles a background tab to about one timer callback a second, and to one a minute after five minutes, and no page can do anything about that. What a page can do is compute the remaining time from the clock rather than counting it down, so the reading is correct the moment it runs again, and say how late it noticed. Starved of every timer callback for four seconds, this timer reads the right remaining time to within half a second.

**And the cycle itself was already right,** which is worth recording rather than quietly claiming: with two sessions before a long break, stepping through gives Focus, Short Break, Focus, Long Break, and it does so both in the module and when the page is driven. A first measurement said it never reached a long break, and that was the test reading the three mode BUTTONS, all three of which carry a session name, rather than the selected one.

One thing this page cannot tell you, and says so: the 25 and 5 minute figures are conventions of Francesco Cirillo technique rather than a measured optimum. There is no document to check them against, so they are labelled as conventions where they appear.

Examples

  • A session ended early

    A one minute focus session skipped after 1.2 seconds credits one pomodoro and zero minutes, because the minutes credited are the minutes actually run. The shipped version added the whole configured duration whatever had happened.

Tips & best practices

  • Turn on auto-start for breaks but not for work, so the break begins without you and the next focus session is a decision.
  • If you change the lengths mid-day, the statistics keep the minutes already worked: they record what ran, not what was configured.

Practical scenarios

  • Working through a long afternoon

    The session survives a reload, a background tab and a clock change, so the count means something at the end of it.

  • A cycle that is not 25 and 5

    Deep Work at 50 and 10, the 52/17 rule, or anything between one minute and three hours.

  • Handing somebody your setup

    The share link carries every setting, range checked when it is opened.

Frequently asked questions

Will the timer keep going if I switch tabs?

The time keeps being counted, because it is computed from a clock rather than counted down a tick at a time. What stops is the drawing and the chime: a browser throttles a background tab to about one timer a second, and to one a minute after five minutes. The display is correct again the instant you return, and the page says how long ago the session really ended.

Do I lose my pomodoros if I reload?

No. The running session and today figures are kept in this browser. They reset at midnight local time, because the panel says today.

Why is 25 minutes the default?

Because it is the convention of the technique, not because anything measured it. The same goes for the 5 minute short break and the four sessions before a long one. Nothing here can tell you what length suits you, and the settings panel says so.

What happens if I skip a session halfway through?

It counts toward the set, because you chose to end it, and it credits the minutes it actually ran rather than the length it was set to.

Related tools and how they differ

  • Timer & Stopwatch: A freeform stopwatch with lap splits and an arbitrary countdown, on the same monotonic clock; use it for timing rather than for focus cycles.

Further reading

  • The Pomodoro Technique: A Science-Backed Approach to Focused Work11 min read

Private by design

This runs as client-side JavaScript. Keys, tokens, payloads, and other inputs never leave your device.