The green status page syndrome
You have all seen it: a status page proudly reading “All Systems Operational” while users are shouting in unison on X because the app is down. That dissonance destroys trust far more efficiently than an hour of outage announced plainly. And yet most teams choose — consciously or not — the status quo of saying nothing.
We wrote this because Servor is built on a simple conviction: incident transparency is an asset, not a liability. Here are the principles we wired into Servor's status pages, and that you can adopt with any other tool.
Principle 1 — Measure what your customers experience, not what your servers feel
A useful status page measures the customer experience, not the internal health of the cluster. The distinction is fundamental: a Kubernetes node can be red without a single user noticing, and your CDN can serve 5xx without your internal metrics batting an eyelid.
In practice that means:
- running HTTP checks against your public endpoints, from outside your VPC — not from inside it;
- measuring real response times (TTFB, total duration) and not just the HTTP status code;
- adding checks that imitate a user journey — a custom script that logs in and then makes the one call that matters — rather than simply pinging
/health.
And knowing where the measurement starts from. A check that runs from a single vantage point will never tell you that a regional network operator is having a bad day: that is a limit to acknowledge, not to hide.
Principle 2 — Name components the way your customers perceive them
A readable status page is not an architecture diagram. It exposes business components your users understand:
- “Sign-in” (not “auth-service”);
- “Outbound email” (not “postfix-relay”);
- “Dashboard” (not “web-app-v3”);
- “Payments” (not “stripe-webhook-consumer”).
The business-to-infrastructure mapping stays in your internal diagrams. On the status page, your customers should only read what concerns them.
Principle 3 — Acknowledge the incident within five minutes
The psychological cost of a status page that drags its feet is enormous. If your users are already tweeting about your 500s, a yellow Investigating banner beats no banner at all.
The pattern we recommend:
- 00:00 — automatic detection by the check. With a short interval and sensible hysteresis (two consecutive failures before flipping), you are talking minutes, not seconds: that is the price of not opening an incident over a network hiccup;
- +1 min — whoever is on call gets the alert on Slack, Discord, by email or through a signed webhook, with a direct link to open the incident;
- +3 min at the latest — the incident is opened as
investigatingwith a message that is generic but honest (“we are seeing an elevated error rate on Payments, investigation under way, next update in 15 minutes”); - +15 / +30 min — regular updates even when nothing has moved, if only to confirm someone is still on it.
Principle 4 — Write updates your VP of Sales can read
A status page is not a technical discussion. Drop the ops jargon: replica lag, eviction policy, MFA backend. Your hardest readers are your customers' account managers, explaining the situation to their own customers.
A good update:
“Card payments are currently unavailable. Alternative payment methods (bank transfer) are still working. We are working with our provider to restore the service; next update at 16:45.”
A bad update:
“Stripe webhook consumption is degraded, the worker is struggling to drain the queue after a Redis latency spike. Rolling back this morning's release.”
Principle 5 — Communicate the resolution as carefully as the incident
The moment an incident is resolved matters as much as the moment it started. Three things to say:
- “It is over” — clearly, with no ambiguity;
- “Here is what happened” — short version, non-technical;
- “Here is what we are doing so it does not happen again” — even if the answer is “detailed post-mortem within X days”.
Principle 6 — The post-mortem is an act of transparency
Most post-mortems are never published, or published on a blog nobody reads. That is a waste. A good post-mortem:
- tells the factual timeline of the incident;
- describes the root cause without naming a culprit (blameless culture);
- lists concrete corrective actions with owners and deadlines;
- stays sober in its apologies, but sincere.
If you want a model, read the public post-mortems from Stripe, Cloudflare or GitHub. They are exemplary.
What about planned maintenance?
Planned maintenance is not an incident — but it deserves the same rigour. A good flow:
- announcement seven days out, with an estimated window and the expected impact;
- a reminder the day before, linking to the status page;
- switch to
maintenanceat the start, with the expected time of return; - back to
operational, with an explicit confirmation that it is finished.
The industry tends to lie. You do not have to
Plenty of status pages stay green through an incident so as not to “worry anyone”. All they achieve is eroding the trust of customers who can see the outage with their own eyes and watch you claim otherwise. An honest page is a retention tool, not a shop window.
If you want to try this approach, Servor offers public status pages with business components, 90 days of history, double opt-in email subscribers, signed webhooks, a custom domain with an automatic certificate, and automatic incident creation when a check flips. It is included from the Operations plan — five pages — and uncapped on the AI plan; the Free plan does not include any.
Related reading: the Plan-Execute-Verify discipline and Servor's zero-knowledge implementation.