PLAYBOOK

The cheapest way to know when your app goes down

It's free, it takes about ten minutes, and the one setting most people skip is the one that catches the outages that matter.

9 min read
ON THIS PAGE
SHORT ANSWER

What is the cheapest way to know when my app goes down?

Free. A computer somewhere else loads your app on a schedule, and when it can't, it emails you. Several services do this at no cost for a single app, and setup takes about ten minutes — most of which is you deciding which page to point it at.

That's worth saying up front, because the reason most people don't have this is not price. It's that the whole category is described in words that sound like they're for someone with a job title. They aren't.

There's a name for it — uptime monitoring, meaning something checks whether your app is reachable and keeps a record. You'll need that phrase to search. After this paragraph I'll just call it the checker.

What am I actually buying?

Right now, the way you find out your app is broken is that someone tells you. A user emails. A friend says "hey, is this thing working?" Or you open it yourself on a Sunday and your stomach drops.

The gap between when it broke and when you found out is the only number that matters. Everything here is about shrinking that gap, and what each amount of shrinking costs.

Is the free tier really enough?

Yes, for one app it's more than enough. UptimeRobot's free plan watches 50 things every five minutes, includes a public status page, and covers the main check types — loading a web address, looking for a specific word on the page, and heartbeats.1

Their own help centre is unusually direct about who it's for: they state plainly that the free plan can be used for business, commercial and revenue-generating projects, and they name a startup keeping an eye on its app as a welcome case.1 That's not a loophole. That's the vendor telling you not to upgrade.

Better Stack's free tier goes the other direction — fewer things watched, faster looking. Ten monitors, ten heartbeats, a status page, and checks every three minutes.2 If you have one app, ten is plenty, and three minutes beats five.

cron-job.org is the odd one out. It's a free scheduler — it will hit a web address on a timetable you set, as often as once a minute — and it also does status monitor jobs and public status pages, with no paid tier lurking.3 Cronitor also offers free uptime, status and scheduled-job monitoring.4

OptionThings watchedHow oftenAlso included
UptimeRobot free50Every 5 minutesStatus page, word-on-page checks, heartbeats
Better Stack free10 monitors, 10 heartbeatsEvery 3 minutesStatus page
cron-job.orgScheduled jobs and status monitorsAs often as every minutePublic status pages, no paid tier
The three free options, side by side

Does it matter how often the check runs?

Much less than the marketing suggests. If your app has been down for five minutes you are not in materially worse shape than at three. You're in worse shape than at forty minutes, which is roughly what happens when nobody's watching and you hear it from a user at lunch.

The jump from nothing to every five minutes is enormous. The jump from five minutes to thirty seconds is a rounding error unless your app takes payments continuously or you've made a written promise to customers about availability.

So take the free tier. Faster checks are the last thing you should pay for, not the first.

What will a basic check miss?

The most common failure there is. A basic check asks one question: did the page load? But the way apps on hosted backends usually break is that the page loads perfectly and nothing on it works.

The screen appears. The login button spins forever. The list of items is empty. Your database connection is gone, a key expired, a third-party service is refusing you — and your checker sees a beautiful, fully-loaded, completely useless page and reports green.

The fix is keyword monitoring — you tell the checker a specific word to look for on the page, and it alerts you when that word is missing. It's on UptimeRobot's free plan alongside the basic check types.1

Pick a word that only exists when your app is genuinely working. Not your logo text, not the nav bar — those render even when everything behind them is dead. Pick something that had to come out of your database to appear on screen: a product name, a user count, a row of real data.

PASTE THIS INTO YOUR AI TOOL
Add a health check page to my app at /health. It should do one real read from my database — a single row from any table is fine — and return the plain text "ok" only if that read succeeds. If the database read fails, return an error status instead of "ok". No layout, no navigation, no styling.

How do I know a scheduled job didn't run?

You need the job to check in with you, because scheduled work doesn't fail loudly — it just stops happening, and nobody notices for weeks. Nightly emails, weekly reports, cleanup tasks, syncs: none of them show up in a page-loading check.

The answer is heartbeat monitoring, where your job pings a unique web address every time it finishes and you're alerted if that ping doesn't arrive on schedule. Uptime.com describes it as making sure critical tasks like scheduled processes are running as expected — the job signals it's alive, and silence is the alarm.5

Both UptimeRobot and Better Stack include heartbeats free; Better Stack's free tier lists ten.2 Setup is one line at the end of your job: after it succeeds, call this address. Your AI tool can write that if you paste it the address and say where it goes.

Does a checker stop a free Supabase project from pausing?

It does, and this is the best free thing in this article. Supabase's documentation states that a Free plan project is considered inactive if it doesn't receive sufficient database activity over the past week, and that paid projects aren't subject to that automatic pausing. Once paused, the docs describe a one-year window to restore it from the dashboard.6

People do hit this. There's an open report on Supabase's GitHub from a Free plan user whose project was paused after a week of inactivity and whose resume was taking far longer than the usual minute or two.7 It's a common enough worry that community threads exist asking, straightforwardly, whether the data survives a restore.8

Here's the useful part. SimpleBackups, writing about exactly this in April 2026, points out that inactivity is measured by requests, that any request counts including a health check on a schedule, and that one request a day is enough to prevent a pause.9

1 — Requests a day needed to keep a free Supabase project awake, per SimpleBackups, April 20269

So the free checker from the last two sections — the one hitting a page that does a real database read every three or five minutes — is also what stops your database going to sleep. One setup, two problems.

If your project is already paused, the same source lays out the two situations plainly: if you can still see it in the dashboard marked paused, the data is there and the project is just offline, which is the better case. If it's vanished from the dashboard entirely, that's the other conversation, and it's urgent.10

When is paying actually worth it?

When the alert needs to wake you up. Free plans alert by email, and email at 3am is a note you read at 8am. If your app being down for five hours overnight genuinely costs you — bookings, orders, a customer with expectations — what you're buying is a phone that rings.

Better Stack's paid plans start at $29 a month, and their uptime tier is described as including unlimited phone and SMS alerts.11 Be aware of how the pricing stacks, though.

A December 2025 hands-on comparison from Hyperping notes that on-call responders run $29 per user per month on Better Stack,12 and a March 2026 review puts additional monitors beyond the free ten at roughly $21–25 a month per extra fifty.13 A competitor's comparison page lists extra status pages at around $12 a month, and far more for white-labelling and password protection.14

None of that is a scandal. It's that the sticker price and the price of the thing you pictured are different numbers, and you should know which one you're looking at before you enter a card. UptimeRobot's paid tiers mainly buy faster checks, more than 50 monitors, more team logins, longer history and custom-domain status pages.1 Read that list honestly and ask whether any line describes you.

How do I set this up this afternoon?

  1. Make a health check page
    One page in your app that does a genuine database read and prints a single word. "ok" is fine. The prompt above will get your AI tool to build it.
  2. Sign up for a free checker and point it at that page
    Any of the three will do. Take the free plan and don't look at the upgrade page.
  3. Turn on the look-for-a-word option
    Give it the word your health page prints, so it checks that the app works rather than just that the page arrived.
  4. Add one heartbeat for anything on a schedule
    Copy the address the checker gives you and paste a call to it at the end of that job.
  5. Turn on the status page
    It's free on all three. Next time something breaks, a link is a much better answer to an anxious customer than a paragraph.

Then leave it alone. The correct experience of this is silence for months, one email that turns out to be a false alarm, and then one email that isn't — arriving while you can still do something about it, instead of on Monday.

Questions people also ask

WHERE THIS COMES FROM

  1. Who Should Use UptimeRobot's Free Plan?UptimeRobot Help Center
  2. Uptime Monitoring by Better StackBetter Stack
  3. Free cronjobs — from minutely to once a yearcron-job.org
  4. Simple monitoring for any applicationCronitor
  5. Cron Job (Heartbeat) MonitoringUptime.com
  6. Project PausingSupabase Docs, 14 August 2026
  7. Bug Report: Extended Resumption Time for Paused Free Plan Project (issue #37453)GitHub, supabase/supabase, 25 July 2025
  8. Will I lose data if my Supabase free project is paused for inactivity?Answer Overflow (Supabase Discord), 20 October 2025
  9. Supabase Free Tier Paused and Lost Data: What HappenedSimpleBackups, 14 April 2026
  10. Recovering a Paused or Deleted Supabase ProjectSimpleBackups, 15 June 2026
  11. PricingBetter Stack
  12. Better Stack vs Uptime.com vs HyperpingHyperping, 12 December 2025
  13. Better Stack Review (2026)MakerStack, 19 March 2026
  14. Better Stack (Better Uptime) Alternative — 2026 ComparisonOneUptime
KEEP READING
Read this as markdown