How we built the public status page — and why it's worth doing honestly
Warrant canary, p95 measurements, incident timeline — how this stack helps us sell trust.
Why it matters
VPN is a trust product. Half of user objections reduce to "can we actually trust you?". There are three levers on that: (1) jurisdiction, (2) no-logs policy, (3) observable behaviour — i.e. the status page.
What has to be there
Current status — OK / degraded / outage, service-wide. Top of status.logrus.io.
By region — because London can be fine while Amsterdam is down.
Incident timeline — last 90 days. With honest descriptions like "we saw 40 minutes of degradation, the cause was X".
Uptime metrics — p95 latency, successful-connection rate. NOT marketing "99.99%".
Warrant canary — refreshed monthly. If it disappears, that's a signal.
What we don't show
- User counts. Commercial secret.
- Edge-node IPs. Security.
- Detailed incident logs. Privacy promise.
How it helps sales
Our B2C conversion went up 8% after launching the public status page with the incident timeline. Why? The audience sees that we're not afraid to show failures. That triggers trust.
For comparison — Mullvad and Proton VPN do the same. NordVPN/ExpressVPN don't. That's not a coincidence.
Tech
status.logrus.io is a separate Next.js app that reads metrics from our SRE Grafana via a server-side proxy. 60-second cache. Served through Cloudflare Pages, load is negligible.
Warrant canary is a static Markdown file in the repo; PR review on every update.