Docs · 9/13 Status pages and badges

Status pages and badges

A status page is a public page that tells your users whether your app is up, without them having to email you. Each app has one you can turn on. It shows uptime only, never revenue, logs or errors.

In 30 seconds

open the app → Settings → Status page, turn it on, and click Copy next to its address.

Turn it on

  1. Open the app → Settings → Status page.
  2. Turn the switch on. The page is live at https://bugotter.com/status/your-app.
  3. Click Copy to share the address, or Open to see it.

The page shows the current state ("All systems operational", "Some features aren't working", "We're seeing an outage"…), 90 days of uptime, past incidents and planned maintenance. Times are in UTC.

A public status page: bugotter.com status, All systems operational, uptime bars for Website, Docs and API, and a resolved partial outage with two updates
  1. The current state, for everyone to see.
  2. One bar per day for each part, with its uptime.
  3. Past incidents, with the updates you posted.

Parts

Split the page into parts, like "Website", "API" and "Checkout". Click Add parts, name each one (up to 8), pick the extra check behind it, then Save parts. A failing part reads as a partial outage, not a full one.

Updates during an outage

When an incident is open, post a short note for visitors under it, on the app's Uptime tab or the incident. BugOtter drafts one from what it knows (marked Ready to post). Post it as is, or edit it first.

Subscribers

Visitors can click Get updates on the status page and enter their email. They confirm their address first (the link lasts 48 hours), get an email for each incident and update, and can unsubscribe from any email. Settings → Status page shows how many subscribed.

Maintenance

Planned maintenance windows show on the page ahead of time, with your note, and during the window it says "Scheduled maintenance in progress".

Your own domain

Serve the status page at your own address, like status.yourapp.com, on Pro.

  1. Open the app → Settings → Status page → Your own domain, type the domain and click Connect.
  2. Add the DNS records shown, at your DNS provider: a CNAME for a subdomain (or an A record for a bare domain), and a TXT record that proves it's yours (named _bugotter.status for status.yourapp.com, with a value starting bugotter-verify=).
  3. Wait. BugOtter checks again every hour and walks through Confirm it's yours → Waiting for DNS → Securing (certificate) → Live. The certificate is set up on its own.

On Starter and Builder, the status page shows a small BugOtter mark.

Badges

With the status page on, add the uptime badge to your README. Settings → Status page → Copy badge for README copies it with your address:

README.md
[![uptime](https://bugotter.com/badge/your-app)](https://bugotter.com/status/your-app)

It shows uptime over 90 days: green from 99.9%, amber from 99%, red below, or "down" during an outage. It updates every 5 minutes.

There's also a "Verified by BugOtter" revenue badge, off unless you turn it on for that app.

Want one without an account? The free status page tool shows what it looks like, and the Vercel guide sets one up step by step.

Common questions

The status page is off. Turn it on in the app → Settings → Status page.

My domain is stuck on "Confirm it's yours"

BugOtter can't see the TXT record yet. Check its name is exactly the one shown (for status.yourapp.com it's _bugotter.status; some DNS providers want the full _bugotter.status.yourapp.com) and its value is the whole bugotter-verify=… text. DNS can take up to a few hours; it's checked again every hour.

"That domain is already connected to another Vercel project"

The domain is attached to one of your own Vercel projects. Remove it there first, then connect again.

"Status pages on your own domain are part of Pro"

Your own domain is on Pro. On other plans, use the /status/your-app address.

"Too many signups from here"

Each visitor can subscribe up to 5 times an hour per page. Try again later.

See alsoAdd your appsAlerts and the digestPlans and limits