Pomodoro Timer

Maintain deep focus with drift-free timestamp countdowns, synthesized chime alerts, and local session tallies.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.
Ready to focus
25:00
Completed Focus Sessions: 0

Session count is saved in this browser localStorage. Clearing browsing data will reset this number.

Timer & Alert Settings

Status: Not requested

About This Tool

The Pomodoro Technique breaks complex work into focused intervals (typically 25 minutes) separated by short rests (5 minutes). After four consecutive work intervals, a longer break (15 to 30 minutes) restores mental energy.

Many browser timers use raw setInterval counters that drift out of sync when background tabs are throttled by operating system energy savers. This timer calculates elapsed intervals against wall-clock timestamps (performance.now and Date.now), maintaining exact second-level accuracy even when you switch windows.

Key Features

  • Drift-free timestamp countdown: Calculates remaining time against target completion timestamps so tab throttling never slows down your timer.
  • Configurable intervals: Customize work intervals, short breaks, long breaks, and the session threshold before triggering long breaks.
  • Live tab title updates: Track remaining minutes and work state directly in your browser tab title without switching tabs.
  • Synthesized Web Audio chime: Plays a gentle bell chime rendered directly by the browser Web Audio synthesizer with zero external audio downloads.
  • Desktop notification alerts: Opt in to standard system notifications when focus sessions or breaks conclude.
  • Local session tracking: Completed focus sessions persist in localStorage so your daily total survives browser restarts.

Frequently Asked Questions

Why does this timer not drift when the tab is hidden?
Browsers throttle setInterval ticks to once per second or once per minute in inactive tabs. Instead of counting ticks, this timer stores the exact target end epoch timestamp and recalculates remaining seconds on every tick.
Where is my session history stored?
Your session tally is stored solely in your browser localStorage under the key "pomo_sessions". No data is ever sent to a remote server.
How does the sound alert work?
Audio alerts use the native Web Audio API to synthesize a 587 Hz (D5) harmonic tone with an exponential decay envelope. It requires no audio files or network requests.
Can I change interval durations mid-session?
Settings update the baseline duration for upcoming sessions. Resetting or advancing to the next cycle immediately applies your new configured lengths.