How the alarm is kept and how it fires
Your alarms live in the browser's local storage on this device — a small JSON list holding each alarm's time, label and repeat days. Nothing is sent anywhere, which is why the page has no account and why your alarms do not follow you to your phone. Clearing site data for this domain, or opening the page in a private window, starts from an empty list.
The clock re-reads the system time twice a second and compares the current hour and minute against each saved alarm. The match is deliberately made on the whole minute rather than an exact second: if the browser has been throttling this tab and the check lands 400 milliseconds late, the alarm still fires instead of slipping through a one-second window. A record of which minute was last checked stops the same alarm ringing twice.
The chime itself is generated rather than downloaded — a square-wave oscillator playing A5, D6, A5, D6 in a 180 millisecond pattern, repeated every 900 milliseconds until you dismiss it. The square wave is the point: its harmonics carry through laptop speakers far better than a pure tone at the same volume. At the same time the tab title starts alternating with an alarm banner, and on phones and tablets that support it the device vibrates in a short double pulse.
What it cannot do — read this before trusting it
Sound needs a user gesture first. Browsers refuse to let a page produce audio until you have interacted with it, so the audio system here is created at the moment you set an alarm. This has a consequence that is easy to miss: if you reload the page, your saved alarms are still listed and will still fire, but the sound will not play until you touch the page again. You get the on-screen banner and the flashing tab title in silence. After any reload, set one throwaway alarm — or tap a nap preset and delete it — to re-arm the audio.
This is a browser tab, not an operating system alarm. Closing the tab, quitting the browser, or letting the computer sleep stops the clock entirely. A missed alarm is not replayed on wake; it is simply missed. On phones this is worse rather than better — locking the screen suspends both timers and audio — so a web page is the wrong thing to rely on for waking up. Use your phone's own clock app for that and keep this for a machine that is awake and in front of you.
"Once" means "the next time this clock time comes round." A one-off alarm is removed from the list at the moment it rings. If it never rings — because the laptop was asleep at 07:00 — it stays in the list and fires at 07:00 the following day instead. There is also no custom sound, no gradual volume ramp, and no way to set an alarm for a specific date rather than a time of day.
Getting it right in practice
Test once, properly. Set an alarm for one minute ahead, switch to another tab, and let it ring — this confirms the volume is high enough, the audio is armed, and that you are not on a muted output device. It takes a minute and it is the difference between an alarm and a decoration.
The nap presets are the fastest path in: they set an alarm the given number of minutes from now, labelled automatically. The 20-minute option is the conventional short nap, generally ending before the deep sleep that makes waking unpleasant, and the 90-minute option approximates a full sleep cycle for many adults. Both are averages, not guarantees. Snooze adds five minutes as a new one-off alarm rather than shifting the original, so the alarm you snoozed at 07:00 will still be there tomorrow if it repeats.
For a repeating alarm, use the day buttons — Weekdays covers Monday to Friday, Weekends covers Saturday and Sunday, and any other combination can be built by tapping individual days. The countdown next to each alarm always shows the next real occurrence, skipping forward over days you have not selected, which is the quickest way to check that a repeat pattern is what you meant.
Fullscreen turns the page into a plain 24-hour clock with the date beneath, which is what makes it usable on a spare monitor. The controls fade out once you stop moving the pointer, and a Details switch next to them decides whether the "alarm set for…" line stays on screen — off by default, so a clock left running overnight is just a clock, and remembered for next time. For counting down rather than waking up, the countdown timer and the plain timer are better shaped for it, and Pomodoro handles work-and-break cycles without you setting anything by hand.
What happens in each situation
| Situation | Does it ring? | Detail |
| Tab visible | Yes | Sound, on-screen banner, flashing tab title, vibration where supported. |
| Tab in the background | Yes | Audio continues from background tabs. The flashing tab title is how you find it again. |
| Page reloaded, not touched since | Silently | Alarms survive the reload, but audio stays blocked until you interact. Set any alarm to re-arm it. |
| Browser or tab closed | No | Nothing is running. Alarms are still saved and will work the next time the page is open. |
| Computer asleep | No | The missed minute is not replayed on wake. A one-off alarm remains listed and fires at the same time next day. |
| Phone screen locked | No | Mobile browsers suspend timers and audio. Use the device's own clock app instead. |
| Private / incognito window | Yes, that session only | Alarms are not saved once the window closes. |