Status Pages
Server-rendered, edge-cached status pages with custom domains, three templates, components grouped under categories, RSS feeds, and double-opt-in subscribers.
Status Pages
A status page is a public URL where your users can see whether your services are up. Happy Uptime ships three templates, accepts custom domains, supports component grouping, and maintains a subscriber list with RSS + email notifications.
Anatomy
textstatus_pages├── components (linked to monitors → derive status automatically)│ ├── Web App → monitor "happyuptime.com"│ ├── API → monitor "api.happyuptime.com"│ └── Webhooks → monitor "hooks.happyuptime.com"├── component_groups (optional — Frontend, Backend, etc.)├── subscribers (email + double-opt-in)└── incidents (live from /incidents API, filtered by affected monitors)
Templates
| Template | Vibe |
|---|---|
minimal | Clean white/dark, geometric. Good default. |
brand | Hero block, larger typography, custom-color cards. Best when you want a marketing feel. |
terminal | Monospace, dark, ASCII-style. For developer tools. |
All three templates respect:
- Logo (light + dark)
- Brand color
- Custom CSS injection
- Custom header / footer HTML
- "Hide branding" (Pro+)
Custom domains
Point a CNAME at status-proxy.happyuptime.com, save the hostname in your status page settings, and within ~30s your page serves from status.yourdomain.com with SSL handled by Cloudflare.
Component grouping
Organize 10+ components into groups (Frontend, Backend, Infrastructure…). Each group renders as a collapsible section. Manage via the API: POST /status-pages/:id/groups and POST /status-pages/:id/components/bulk.
Subscribers
Subscribers register their email on the public page. They get a double-opt-in confirmation email. Once confirmed, they receive emails (and optionally webhooks) when an incident is created, updated, or resolved on the page.
Manage via: POST /status-pages/:slug/subscribers/subscribe (public) and DELETE /status-pages/:id/subscribers/:sid (admin).
RSS / Atom
Every status page exposes /<slug>/feed.xml — drop it into Slack, Feedly, or any RSS reader.
Widgets
Embed your status anywhere:
- SVG badges —
https://happyuptime.com/api/v1/badges/{statusPageId}/uptime.svg - Status JSON —
https://happyuptime.com/api/v1/widgets/{statusPageId}/status.jsonfor programmatic consumers - Downtime banner —
https://happyuptime.com/api/v1/widgets/{statusPageId}/embed.js— auto-shows during incidents
See the widgets API for full options.