> ## Documentation Index
> Fetch the complete documentation index at: https://docs.happyuptime.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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

```
status_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.json` for programmatic consumers
- **Downtime banner** — `https://happyuptime.com/api/v1/widgets/{statusPageId}/embed.js` — auto-shows during incidents

See [the widgets API](/api/widgets/badges) for full options.

## Quick links

**[Build a status page](/guides/build-status-page)**

Pick a template, link monitors, hit publish.
  **[Custom domain setup](/guides/custom-domain)**

DNS + SSL automated.
  **[Embed badges](/guides/embed-badge)**

Drop SVG badges into READMEs.
  **[Downtime banner](/guides/downtime-banner)**

Auto-show a banner on your site during incidents.