← All articles
ReliabilityJuly 3, 20264 min read

Why a scheduler has to run on a server, not your laptop

Anything that publishes while you sleep has to be awake while you sleep. That rules out browser tabs, phones and closed lids.

It sounds obvious written down, and it is still the reason a surprising number of homemade scheduling setups quietly stop working.

What does not work

  • A browser tab with a timer — closed, slept, or throttled by the browser after a few minutes in the background
  • A script on your laptop — the lid closes
  • A phone app alone — the operating system suspends background work aggressively, by design
  • A cron job on a machine that is not always on — which is most machines people own

Each of these works when you test it, which is the trap. You test it while watching. The failure only happens when nobody is.

What the job actually needs

  1. 1A process that is awake at every minute of the day
  2. 2A record of what is due, that survives a restart
  3. 3A way to notice that a publish failed, and try again on a growing gap
  4. 4A way to tell a human once it has given up

Which is why hosting matters more than it looks

Some platforms cap scheduled jobs on their free tier at once per day. A scheduler that fires once a day is not a scheduler — it is a reminder. Worth checking before you build on one.

A small always-on server with a one-minute timer costs a few euros a month and removes the entire category of problem.

Stop watching the clock. Start drifting.

Get started free

Keep reading