How to add a status page to your SaaS for free
A status page cuts support messages during outages and makes a small product look trustworthy. What it should show, three free ways to get one, and how to set one up in a few minutes.
5 min readStatus pagesMonitoringGuides
When your app has a problem, your users ask the same question: "Is it just me?" Without a status page, they ask it by email, in your chat widget, on social media — or they don't ask at all and quietly leave.
A status page answers that question before anyone has to ask. It's a simple public page that says whether your service is working right now and how it has been doing recently. Big companies all have one. Small products benefit even more, because a solo builder can't answer fifty "is it down?" messages while also fixing the problem.
This guide covers what a good status page shows, the free ways to get one, and how to set one up in a few minutes.
What a status page is for
- It reduces support load during outages. People check the page instead of writing to you.
- It builds trust. A history of mostly-green days says "this product is looked after". An honest note about an outage says the same.
- It gives you a link to share. "We're aware, follow updates here" is calmer than ten separate replies.
- It helps sales. Some customers, especially businesses, look for one before they buy.
What a good status page shows
Keep it simple. The best small-product status pages show:
- The current state, in one line. "All systems operational" or "Some systems are down". Visible without scrolling.
- Each part of your product separately, if it has parts: the app, the website, the API. A broken API with a working landing page is a different situation for users than everything being down.
- Recent history. A row of daily bars for the last 90 days is a common, readable format: green for good days, red for days with outages.
- An uptime figure for the period, like "99.95%". Make sure it's calculated honestly — only confirmed outages, not one-off failed checks.
- When it was last updated, so people know it's live.
It should not show internal details: server addresses, error logs, employee names. And it should load even when your app doesn't — so don't host it inside your app.
Three free ways to get one
1. A static page you update by hand
You can make a page on your site that says "All systems operational" and edit it when something breaks.
- Pros: completely free, completely under your control.
- Cons: it's only as current as your last edit. During an outage you're busy fixing things, and the page still says everything is fine. If it's hosted together with your app, it goes down with it.
Fine as a stopgap; not a real status page.
2. A status page from your monitoring tool
Most uptime monitoring services include a public status page, often on the free plan, fed automatically by their checks. When your monitor sees an outage, the page shows it — no manual updates.
- Pros: automatic, always current, hosted separately from your app.
- Cons: free plans usually show a small brand badge and may limit customization. Check each tool's plan for details like custom domains.
This is the right choice for most small products.
3. A self-hosted status page
Open-source tools like Uptime Kuma include status pages you host yourself.
- Pros: full control, no badge.
- Cons: you have to run and maintain a server — and if it's the same server as your app, the status page fails at exactly the wrong moment.
Setting one up with Pingbuddy (free)
Pingbuddy's status page is included on the Free plan. Here's the whole setup:
Step 1: Watch your sites
Paste your app's address on the Pingbuddy home page and sign in. Add each part you want on the page — say, your app and your marketing site — as separate sites. The Free plan covers up to 20 sites, each checked every 5 minutes.
Step 2: Turn the status page on
In the dashboard, open Status page and press the button to turn it on. You get a public address like pingbuddy.app/status/status-1a2b3c.
Step 3: Give it a nice address
Change the address to your product's name, for example pingbuddy.app/status/my-app. Lowercase letters, digits and dashes.
Step 4: Choose what's shown
Pick which of your sites appear on the page. Each one is shown by the name you gave it — never its internal address — with:
- whether it's up right now (or under maintenance while you've paused its alerts);
- its uptime over the last 90 days;
- a bar for each of the last 90 days, red where an outage happened.
At the top, the page says "All systems operational" or "Some systems are down".
Step 5: Link to it
Put the link where people look when something's wrong:
- in your app's footer and help menu;
- in your support auto-reply;
- in your docs or FAQ;
- in error messages ("Having trouble? Check our status page").
That's it. From now on the page updates itself from Pingbuddy's checks. Outages appear as soon as they're confirmed (Pingbuddy checks twice before calling something down), and disappear into the history when they end. The page refreshes every few minutes.
What's different on Pro
On the Free plan, the page ends with a small "Monitored by Pingbuddy — free uptime monitoring" badge. Pro ($9 a month) removes it.
The other half: knowing about outages first
A status page is only useful if it's accurate, and only helps your reputation if you react quickly. The same checks that update the page also alert you:
- on Telegram and by email, when a site goes down and when it's back;
- with a screenshot of what visitors see and, for most outages, a plain-English explanation of the likely cause;
- when your app's page is blank even though the server answers, thanks to a real-browser check every 30 minutes;
- when a service your app runs on — Supabase, Vercel, Stripe and others — is having an outage, so you can tell users quickly that it's not your app's fault.
You can see those services' live status on our status pages for popular services, for example Supabase or Vercel.
Tips for handling an outage well
Even with an automatic status page, a few habits make a big difference:
- Acknowledge fast. A short "We're looking into it" message, posted where your users are, is worth more than a perfect explanation an hour later.
- Say what's affected. "Sign-in is failing; existing sessions still work" helps people decide whether to wait.
- Give a next update time, even if you don't have news. "Next update in 30 minutes" reduces anxious messages.
- Close the loop. When it's fixed, say so, and briefly what happened. Users forgive outages much more easily than silence.
- Learn from it. If the cause was something predictable — an expired certificate, a paused database, a key that leaked — set up something that tells you earlier next time.
Add an uptime badge too
Pingbuddy also gives each site a small badge — "99.9% uptime · Pingbuddy" — that you can put in your README, your footer or your pricing page. It updates by itself and links to Pingbuddy. Find the code for it in each site's settings.
Quick start
- Add your sites on the Pingbuddy home page (free for up to 20).
- Turn on the status page and give it your product's name.
- Choose which sites to show.
- Link to it from your app, docs and support replies.
Want a quick look at your app's health first? Run a free checkup — no sign-up needed.