Building a Public Status Page: What to Show and What to Hide
A public status page is one of the highest-leverage things you can do for user trust. When your service has an incident, users who find your status page stay calm. Users who don't find it flood your support inbox.
What You Should Always Show
Current Status — A clear "All systems operational" or "Degraded performance" that updates in real time. Don't make users wonder.
Uptime History — A 90-day bar chart showing daily uptime. Users want to see if outages are rare or a pattern.
Incident History — Past incidents with start time, duration, and resolution. Transparency builds trust.
Response Time Trend — Showing your average response time over the past 30 days proves your site is consistently fast, not just "up."
What You Should Hide
Internal System Names — Your users don't care about "postgres-replica-3." Call it "Database" or "Search."
Exact Error Messages — "ECONNREFUSED 10.0.1.5:3306" tells your users nothing but tells attackers a lot.
Partial Outages on Non-Critical Systems — A flapping internal metric service doesn't need to appear as a user-facing incident.
The Tone Matters
During an incident, your status page message should:
- Acknowledge the issue immediately (don't wait until it's fixed)
- Give an estimated resolution time even if it's a rough guess
- Update at least every 30 minutes
- Thank users for their patience
"We are investigating reports of elevated error rates on the API. Our team is actively working on a fix. ETA: 45 minutes. Last updated: 14:47 UTC."
That's it. Don't oversell, don't overpromise.
Auto-Generated vs Manual Status Pages
Auto-generated (like WhistleBlower does): based on real monitoring data. Updates automatically. Accurate. Requires zero manual effort.
Manual: requires a human to update during an incident. Usually accurate but delayed. Good for incident narrative and communication.
Best practice: auto-generate the uptime data, write the incident narrative manually.
WhistleBlower generates public status pages automatically from your monitoring data. Share a URL with your users and never write a manual status update again.
Top comments (0)