Skip to content
All posts

How to Build a Professional Public Status Page With Uptime Kuma

Apr 15, 2026 4 min read

A public status page is one of the most underrated trust-builders a small team can ship. When something breaks — and at some point, something always breaks — users who can check a status page are far less likely to email support, post frustrated messages, or assume the worst. They look at the page, see an incident being handled, and wait.

Building one used to mean paying for a dedicated service like Statuspage.io or BetterUptime, often at surprisingly high cost for what amounts to a page displaying green and red circles. Uptime Kuma, the open-source monitoring tool, includes a fully-featured public status page out of the box. Here's how to use it well.

What Uptime Kuma's Status Page Can Do

Before diving into the how, it's worth understanding what you're working with. Uptime Kuma's status page feature lets you: create one or more public pages; select which monitors appear; group monitors into categories; display historical uptime percentages (24h, 7-day, 30-day); show incidents and maintenance windows with custom messages; use a custom domain with your own branding; and set a custom title, description, and theme.

Step 1: Get Your Monitors Set Up

The status page is only as useful as the monitors feeding it. Before configuring the public page, make sure you have monitors for the services you want to surface. For a typical web service, you'll want at minimum: an HTTP(S) monitor hitting your main site or app URL, a check on any critical API endpoints your users depend on, and if you have a separate auth service or CDN — monitors for those too.

The monitor type matters. For a public status page, HTTP(S) monitors with a keyword check — confirming the page actually loads and returns expected content, not just a 200 — are more meaningful than a simple ping. 60-second intervals are standard for production services that need fast incident detection.

Step 2: Create the Status Page

In the Uptime Kuma sidebar, navigate to Status Page and click "New Status Page." You'll be prompted for a slug — this becomes the URL path. Give it a title that matches your product or company name. The description field shows below the title — something like "Real-time status for [Product Name] services" is clear and functional.

The custom domain feature is worth setting up early. A URL like status.yourcompany.com looks far more professional than a bare IP or generic hostname. You'll need a DNS CNAME record pointing to your Uptime Kuma host. The setup is a single field in the status page settings — enter your custom domain and save.

Step 3: Add Monitor Groups

Status pages with a flat list of monitors become hard to read fast. Grouping monitors into named sections makes the page scannable and meaningful for non-technical users. A useful structure for a typical SaaS product might be: Website & App; API; Infrastructure; Third-party Integrations. Think about your users' perspective: what do they care about? Lead with the things they interact with directly.

Step 4: Configure Incident and Maintenance Messages

The incident message feature is the most important thing to configure before you need it. When a monitor goes down, Uptime Kuma can automatically update the status page to show a degraded or outage state. But the real value is in posting a human-readable incident update. When something breaks, users want to know: we're aware of the issue, here's what's affected, and we're working on it.

Even a brief update — "We're investigating elevated error rates on the API, update in 15 minutes" — dramatically reduces support volume. Maintenance windows are equally important. Scheduled downtime that appears on the status page as a planned maintenance window is far better than users hitting errors with no context.

Step 5: Tune What Shows (and What Doesn't)

Not every monitor belongs on the public status page. Internal tools, staging environments, and infrastructure-layer monitors that your users don't interact with directly should generally stay off the public page. The public page should reflect user-facing status: can users log in, use core features, and reach support?

Similarly, consider the uptime history window. 30-day history is a reasonable default — meaningful enough to demonstrate reliability without amplifying every brief incident.

A status page only builds trust if users can find it. Add a link to your status page in: your app footer or dashboard; your website navigation; your support email autoresponder; your documentation site; and error pages. A 503 that says "check status.yourcompany.com" is far friendlier than a bare error.

Hosting Uptime Kuma: The Operational Reality

Everything above assumes Uptime Kuma is running reliably. This is where self-hosting creates a meaningful challenge. Uptime Kuma needs to be up and reachable for the status page to work. If your monitoring instance is on the same infrastructure as the services it monitors, a hosting outage can take down both your service and the status page simultaneously — exactly when users most need to check it.

The solution is hosting Uptime Kuma on infrastructure that's independent from what it monitors. A managed hosting provider that runs Uptime Kuma on separate, dedicated infrastructure handles this cleanly: your status page stays up even if your primary servers have issues.

What You End Up With

Done right, a self-hosted Uptime Kuma status page gives you: real-time public monitoring with custom branding, a custom domain, grouped service status, historical uptime data, incident management, and maintenance windows — all without a monthly per-seat fee for status page tooling. For small teams, this is meaningful. The setup investment is a few hours. The trust it builds with your users starts working on day one.