EasyWebTools

Wake Me Up Before You Go-Go

V
alarm clock time web audio privacy productivity

Wham! released that song in 1984, and the line has been stuck in the collective skull ever since. It is also, as it happens, a reasonable description of what people want from a computer: wake me up, then get out of my way.

For most of the webโ€™s life, that was a surprisingly bad thing to ask a browser for.

Why Browser Alarms Used to Be Unreliable

Here is the thing nobody tells you about setting an alarm in a browser tab. For years, the obvious way to build one was setTimeout, the JavaScript function that says โ€œdo this thing in N milliseconds.โ€ Simple, readable, and quietly broken for this purpose.

Browsers throttle background tabs on purpose. When you switch away, the tab you left gets deprioritized so it stops draining your battery and your CPU. Timers in that tab slow down, get clamped to once a minute, or stop firing until you come back. This is good engineering; it is also fatal if the entire job is to make a noise at 6:30.

So you would set an alarm, switch tabs to do actual work, and either hear nothing at all or hear it four minutes late. Which is worse than no alarm, because you trusted it.

(The classic workaround was a tab that played silent audio forever to convince the browser it was busy. It worked. It also chewed through battery like a toddler through a bag of crisps.)

What Changed

Two things, and our alarm clock leans on both.

The first is that alarms should not count down at all. They should know what time it is. Rather than asking โ€œhas 8,412 seconds elapsed,โ€ the right question is โ€œis it 6:30 yet,โ€ checked against the actual system clock. A throttled tab that wakes up late still gets the right answer, because the wall clock never stopped.

The second is the Web Audio API, which handles audio scheduling separately from the ordinary JavaScript timing that browsers throttle. Audio scheduled through it continues playing in background tabs. As long as your browser is open and not muted, the alarm rings.

That is the whole trick: ask the clock, not the stopwatch, and let the audio system do the audio.

The Sounds Are Not Files

There are four alarm sounds: Bell, a classic alarm clock rattle; Sunrise, a gentle ascending chime; Radar, an urgent beeping pulse; and Birdsong, a nature-inspired trill.

None of them is an audio file. There is no MP3 to download, no sprite sheet of sounds, nothing sitting on a server waiting to be fetched. They are generated in real time in your browser by the same Web Audio API that keeps them playing.

This matters more than it sounds like it should. An alarm that has to fetch a sound file is an alarm that can fail because the network hiccuped at exactly the wrong moment. An alarm that generates its own sound has nothing to fetch. It fires instantly, offline, every time.

Click any sound name to preview it at your current volume before committing. You will develop opinions. Most people do.

Tomorrow Is a Feature, Not a Bug

Set an alarm for 8:00 AM at nine in the morning and a naive tool does one of two things: it rings immediately, or it sulks and tells you the time is invalid.

Ours rolls forward to tomorrow and puts a small Tomorrow badge next to the countdown so you know exactly what it decided. No guessing, no silent assumption, no waking up having missed the thing.

Your alarm time and sound preference are saved to your browserโ€™s localStorage, so a reload does not lose your setting. If the time is still in the future when you come back, the countdown simply resumes. Nothing about that involves an account, a server, or us knowing anything at all about when you get up.

The Face Is Analog on Purpose

The clock face shows real hour, minute, and second hands, with an orange marker at your target time and an arc between now and then that shrinks as the moment approaches.

We could have shipped four digits counting down. Digits are more precise and much less useful. A number tells you that 47 minutes remain; a shrinking arc tells you, without reading anything, roughly how much of your afternoon is left. Your eyes do the arithmetic before your brain gets involved.

When the alarm fires, the face pulses orange with a warm glow and the sound loops until you deal with it. Dismiss stops it. Snooze gives you five more minutes and re-arms automatically.

There are keyboard shortcuts, because reaching for a mouse at 6:30 AM is its own small cruelty: Space to set or dismiss, S to snooze, R to reset, F for fullscreen.

What People Actually Use It For

  • Meeting reminders. Five minutes before the call, so you stop checking the clock every ninety seconds.
  • Cooking. Check the roast at 6:30. Walk away. The audio carries to the next room.
  • Study breaks. Set it for when the break should end, which is the half of the Pomodoro technique everyone skips.
  • Medication reminders. Private, local, and free of the permission prompts a phone app would demand.
  • Ambient time awareness. Fullscreen it on a spare monitor and the ticking face becomes a clock that happens to have your next commitment marked on it.

No Account, No App, No Notifications You Did Not Ask For

Everything above runs in your browser. There is no sign-up, no install, no notification permission prompt, and no analytics watching when you set alarms or what you set them for.

The only thing stored anywhere is your alarm time and sound choice, in your own browserโ€™s localStorage, on your own machine. We could not tell you what time you get up if you paid us; we do not have it.

That is not a marketing position. It is just what happens when a tool has no server to send anything to.

Go-Go

Wham! had it right. Wake me up before you go-go, then leave me alone: no account, no app icon, no push notification asking whether you are still enjoying the alarm clock experience.

Set a time. Hear it ring. Get on with your day.

Try the alarm clock, and if you need something that counts down instead of ringing at a fixed time, the timer and the hourglass timer are next door. The world clock is there too, for when the meeting is at 6:30 somewhere that is not here.

(We did consider adding a snooze button that moves further away each time you press it. Cooler heads prevailed. Cooler heads had clearly never met a Tuesday.)