Skip to content
brownie.tools

Online Timer

Start the stopwatch or set a countdown in your browser.

00:00:00.00

Alarm not tested. Keep this tab open.

Keyboard shortcuts: Space start/stop · R reset · L lap · F fullscreen

Runs locally in your browser. Nothing is uploaded or sent to a server.

Start the stopwatch or set a countdown in your browser. Track laps, copy them or download CSV, test the audio alarm, and use full-screen mode and keyboard shortcuts. Supported browsers can keep the screen on while timing. Keep this tab open: browsers may delay alarms when hidden or suspended.

Updated

How Does an Online Timer Work?

This timer is built on two browser APIs that together deliver precise, smooth timing without any server involvement. The first is the Performance API (performance.now()), which provides a monotonic high-resolution timestamp measured in milliseconds from an arbitrary origin point. Unlike Date.now(), the Performance API clock cannot be adjusted by operating system time corrections or daylight saving changes - it always moves forward, making it ideal for elapsed-time measurement.

The second is requestAnimationFrame (rAF), the browser's built-in animation loop that fires approximately 60 times per second (matching the display's refresh rate). On each frame, the timer calculates the difference between the current performance.now() timestamp and the recorded start timestamp. This approach means drift is functionally zero - even after hours of running. According to the WHATWG timing specification, performance.now() resolution is at least 5 microseconds in secure contexts, giving this timer sub-millisecond theoretical accuracy.

The audio alarm uses the Web Audio API's AudioContext to synthesize a four-tone beep pattern entirely in the browser. No audio file is downloaded - the waveform is generated mathematically using an OscillatorNode at 880 Hz and 1100 Hz with an exponential gain envelope. This works offline and requires no server request.

Why Use a Browser-Based Timer?

Native apps and desktop widgets dominated timing tools for years, but browser-based timers now offer meaningful advantages:

  • Zero installation. Open the URL and the timer is ready. No app store, no download, no permissions dialog. This matters on managed corporate devices where software installation is restricted.
  • Cross-device consistency. The same URL works identically on a MacBook, an Android phone, a Windows PC, and an iPad. The timer stores no state, so there is nothing to sync across devices.
  • Complete privacy. This timer makes zero network requests after the initial page load. Your lap times, duration settings, and usage patterns are never transmitted anywhere. Many popular timer apps monetize through analytics - this tool does not.
  • Offline capability. Once the page is cached, the timer works without an internet connection. Athletes timing training sessions in areas with poor connectivity can rely on it fully.

According to StatCounter's browser usage data, Chrome, Safari, Firefox, and Edge collectively hold over 95% of global browser market share - all four support the Performance API and Web Audio API used by this timer, ensuring consistent behavior across virtually all users.

When Should You Use a Stopwatch or a Countdown?

Both modes share the same timing engine but serve fundamentally different purposes. The right choice depends on whether you are measuring an event that has already started or preparing for one that has a known duration.

Feature Stopwatch Countdown
Direction Counts up from 00:00:00.00 Counts down to 00:00:00
Display format HH:MM:SS.cs (centiseconds) HH:MM:SS (whole seconds)
Lap tracking Yes - records split times No
Audio alarm No Yes - plays when zero is reached
Progress bar No Yes - shows percentage remaining
Best for Running, swimming, speech practice, benchmarks Cooking, studying, presentations, meetings
Max duration Unlimited (Number.MAX_SAFE_INTEGER ms) 99 hours, 59 minutes, 59 seconds

The lap function in stopwatch mode records both the lap split (time since the last lap) and the running total. This is useful for interval training where you want to compare individual lap speeds without stopping the overall timer - the same mechanic used in professional sports timing equipment.

How Accurate Is an Online Timer?

The most common question about browser timers is whether they are accurate enough for real use. The answer depends on the comparison point.

setInterval-based timers (the approach used by most simple countdown implementations) schedule callbacks at a fixed interval, but the JavaScript event loop does not guarantee exact timing. If the main thread is busy rendering, running a garbage collection, or executing other scripts, a setInterval callback set to fire every 1000ms may actually fire after 1020ms or 1050ms. Over a 60-minute session, this drift can accumulate to 3-5 seconds - noticeable for cooking or exam timing.

performance.now() + rAF eliminates this problem. Instead of relying on callback scheduling, the timer records the absolute start timestamp and calculates elapsed time on every animation frame as performance.now() - startTimestamp. The event loop delay affects only how frequently the display updates (never by more than one frame), not the underlying time calculation. A test by Luca Casonato (Deno core team, 2023) measured performance.now() jitter at under 0.1ms on modern hardware - three orders of magnitude more accurate than setInterval under load.

Background tab throttling is a related concern. Chrome 88+ and Firefox 76+ throttle setInterval and setTimeout in background tabs to a minimum 1-second interval. This does not affect this timer because the time measurement uses performance.now() directly - when the tab returns to the foreground, the elapsed time is calculated correctly from the original start timestamp regardless of how long the tab was hidden. Keep the tab open; browser throttling or device sleep can delay the alarm.

For practical applications - cooking timers (±5 seconds acceptable), productivity sessions (±1 second acceptable), and athletic timing (±0.1 second acceptable for non-professional use) - this browser timer delivers more than sufficient accuracy. For professional athletic competition, dedicated hardware timers with GPS synchronization remain the standard.

How to Use Online Timer

  1. Choose timer mode

    Select Stopwatch for counting up or Countdown for setting a specific duration. Switch between modes using the tabs at the top.

  2. Control your timer

    Click Start to begin timing. Use Lap to record split times (stopwatch) or set hours, minutes, and seconds (countdown). Press Space as a keyboard shortcut.

  3. Use advanced features

    Enter full-screen mode for a distraction-free display. The countdown alarm sounds automatically when time reaches zero. All data stays in your browser.

Frequently Asked Questions