Status page implementation for SaaS application monitoring
A status page is a public page where customers can see the current state of your service, incident history, and planned maintenance. Without it, support gets overwhelmed during outages. With proper configuration, customers find the current status in 5 seconds.
System components
A minimal set includes several independent parts:
- Status page — list of components (API, Dashboard, Webhooks, CDN) with status indicator
- Incident history — timeline with real-time updates
- Subscriptions — email/SMS/webhook notifications on status change
- Uptime metrics — availability percentage for 30/60/90 days
- Planned maintenance — maintenance windows with advance notice
Implementation options
Ready-made solutions save 2–3 weeks of development:
- Statuspage.io (Atlassian) — integrates with Jira, PagerDuty, Datadog. API for automatic status updates. From $29/month.
- Instatus — cheaper alternative, REST API identical to Statuspage. Free tier with limitations.
- Cachet — open-source, self-hosted, PHP/Laravel. Good when SaaS cannot be used.
Custom implementation is needed when you require deep integration with internal monitoring systems and unlimited branding.
Automatic status updates
Manual status updates during incidents are bad: the on-call engineer is firefighting, not writing posts. Automate via Prometheus Alertmanager or PagerDuty webhooks:
# alertmanager.yml — webhook on alert
receivers:
- name: statuspage
webhook_configs:
- url: 'https://api.statuspage.io/v1/pages/PAGE_ID/incidents'
http_config:
authorization:
credentials: $STATUSPAGE_API_KEY
send_resolved: true
The script updates component status via Statuspage API when alert fires and automatically closes incident when resolved.
Separate hosting is mandatory
Status page must not be on the same infrastructure as the main application. If main server goes down, status page is also unreachable — exactly when it's needed most.
Options: Netlify/Vercel (static site with API updates), separate VPS in different cloud, Cloudflare Pages.
Timeline
Configuring Statuspage.io with automatic alerts from Prometheus/Datadog — 1–2 days. Custom page on separate hosting with subscriptions — 3–5 days. Self-hosted Cachet with automation — 5–7 days.







