Blog

Status page examples: what a good one shows

4 min read ยท published 2026-10-21

The famous four, and what to copy from each

You are about to put a status page up, and before you build one you want to see what a good page carries. Fair. These four get linked whenever somebody asks for an example, and each one answers a different question.

PageWhat to copy from it
GitHub (githubstatus.com)Components. The site, the API, git operations, each with its own status and history. When one breaks, the page can say so while the others stay green.
Cloudflare (cloudflarestatus.com)Honesty about scope. A global network does not break all at once, so the page leads with the date, a map of where an incident was felt, and a region-by-region component list.
Stripe (status.stripe.com)Per-product rows. Payments, billing, radar, dashboards: separate components, each with its own availability figure. A customer can tell whether the part they depend on was affected.
Google (status.cloud.google.com)History. A plain directory of every service, each with its own incident record going back years.

Google page is the least designed of the four and it works, because history is the part young pages skip and the part that earns trust. A page that only shows today cannot be checked against anything.

What they share

  • Components, not one row. One part per thing customers depend on, each with its own status. "All systems green" answers no question a customer actually has.
  • Uptime history. Recent checks as bars, and a figure over a longer window, so a reader can tell "up now" from "up all quarter".
  • Incidents with a timeline. When it broke, what was done, when it recovered. The best ones name the cause.
  • A permanent address. Never rename the page under a link somebody already holds. Customers bookmark it once and never again.
  • Somewhere to subscribe. Email, RSS or a chat channel: the page is no use to a customer who has to come back and look.

Live pages on UpControl

Every site we watch gets a public page at upcontrol.io/status/<host>, and 143 of them were live as of 2026-10-21. A few you can open right now: fina-money, cloudreleases-io and loomton-com, each under /status/ on upcontrol.io.

Each page shows one row per component with its recent checks, the uptime figure, and the incident history. Incidents carry their cause in the title, "Checkout returning 502" rather than "Incident #4711", because the checks that open them are part of the same product. Nobody types an incident into the page; it appears when the checks find it.

A public status page for tidvatten.app: four components, each with 24 hours of uptime bars and an uptime figure from 99.87% to 100%
A public status page: one row per component, 24 hours of checks, uptime on the right. Sample data.

Where the big pages win

  • Subscriber notifications. A customer cannot subscribe to our page by email. Team alerts land in Telegram, Slack, Discord or email; the page itself has no subscriber list.
  • Depth of history. Incident history on our plans keeps 10 days on Free and up to 48 months on the largest paid plan. Google directory goes back a decade.
  • Regional detail. Our checks run from the fleet's regions and store the response phases per check, but the public page does not draw a world map or name the region that hurts.
  • Your own domain. A custom domain is a paid feature; on the free plan the page lives under upcontrol.io/status/your-site, which is a perfectly good address for a side project.

Make one in under a minute

  1. Open upcontrol.io and type your domain. The public status page exists from that moment, checked from outside, no account needed.
  2. Claim the page from its own link to move it into your account.
  3. Add a check per component customers depend on. SSL and domain expiry are watched on every check, on every plan.
  4. Pick where your team's alerts go, so you hear about the failure before a customer reads the page.
The UpControl landing page with tidvatten.app typed into the site address field, next to the Check button
Type a domain on upcontrol.io and press Check. The status page exists from that moment.

If the product runs on a server you own, the whole thing also self-hosts from one compose file, AGPL, with the same pages.

See a page before you build yours

Type your domain at upcontrol.io and the page is live before this tab closes: https://upcontrol.io/?utm_source=blog&utm_medium=vs&utm_campaign=engine