# Checkly Status Pages

**Source**: https://www.checklyhq.com/product/status-pages/

> A Checkly status page shows the live state and 90-day uptime of every part of your product. When a check fails, an automation rule opens the incident, updates the page, and emails your subscribers. Nobody has to switch tools or type an announcement first. One status page is included on every plan, the free one too.

## Your status page is a construct

- **Detection and communication, one tool**: the same failure that pages your on-call engineer can update the page and email your customers, with no copy-paste in between.
- **Incidents open themselves**: an automation rule matches failing checks by tag. When a check with that tag fails and its alert is confirmed, Checkly opens one incident on the components you listed, posts your first update, and resolves it when the check recovers.
- **Uptime you can defend**: every component shows 90 days of history, calculated from incident impacts. A major outage counts in full, a partial outage counts at 30%, and degraded performance or maintenance never lower the number.
- **Managed as code**: `StatusPageV3` defines the page, `StatusPageV3Component` each service or group, and `StatusPageV3AutomationRule` the rules that open incidents. Import a page built in the UI with `checkly import status-page:<id>`.
- **Communicate any kind of outage**: frontend, API, TCP and network, and cron job outages, each driven by the matching Checkly monitor type.
- **Your domain, your subscribers, your audience**: host it on a checkly-status-page.com subdomain or your own domain. Users subscribe by email, or follow anonymously via RSS, Atom, or a Slack feed.

## From failed check to customer inbox

1. **A tagged check fails**: the checkout API check fails, retries from another region, and the alert is confirmed. It carries the tag `checkout`.
2. **The rule opens the incident**: Checkly opens one incident, sets the Checkout component to the impact you chose, and posts the first update you wrote in advance.
3. **Subscribers hear about it**: verified email subscribers get the update. When the check recovers, the rule posts the last update and resolves the incident.

## Key facts

- Components are services or groups with five statuses; the page header shows the worst current status.
- Uptime weights: major outage 100%, partial outage 30%, degraded performance and maintenance 0%. Uptime is driven by incidents, not raw check results.
- Plan limits: Hobby **1 page, 20 services, 250 subscribers**; Communicate Starter 25 services, 500 subscribers, custom domain; Communicate Team adds incident automation, maintenance windows, password protection, theme customization, 50 services, 1,000 subscribers; Enterprise adds white labeling, 100 services, 2,000 subscribers, custom page count.
- Custom domain: CNAME to your page's checkly-status-page.com address plus TXT verification. Cloudflare users set the record to DNS only.

## Frequently Asked Questions

### What is a Checkly status page?
A public or private web page that shows the current status and 90-day uptime history of each part of your product, plus open incidents and planned maintenance. You build it from components (a service like "API" or "Checkout", or a group that nests services under a heading), host it on a checkly-status-page.com subdomain or your own domain, and let users subscribe for incident updates by email, RSS, Atom, or a Slack feed.

### How does incident automation work?
You create an automation rule on the status page with one or more tags, the components it should impact, the impact each gets (degraded performance, partial outage, major outage, or under maintenance), and the first and last update messages. When a check carrying one of those tags fails and triggers an alert, Checkly opens one incident, updates the components, and notifies subscribers if you chose to. When the check recovers, the rule posts the last update and resolves the incident. Rules can also be defined in code with the StatusPageV3AutomationRule construct. Incident automation is available on the Communicate Team and Enterprise plans.

### Which plans include status pages?
Every plan, including the free Hobby plan, includes one status page with up to 20 services and 250 subscribers. Communicate Starter raises that to 25 services and 500 subscribers and adds a custom domain. Communicate Team adds incident automation, maintenance windows on the page, password protection, theme customization, 50 services, and 1,000 subscribers. Enterprise adds white labeling, 100 services, 2,000 subscribers, and a custom number of pages. Full details are on the pricing page.

### How is uptime calculated?
Per component, over the last 90 days, from incident impacts. Time under a major outage counts as 100% downtime, partial outage counts as 30%, and degraded performance or maintenance count as 0%. Overlapping incidents on the same component never double-count. Uptime is driven by incidents, not raw check results: without an automation rule or a manually opened incident, a failing check does not lower the number, so the page shows what you have actually communicated.

### Can I host the status page on my own domain?
Yes, on Communicate Starter and above. Add the domain to your status page, create a CNAME record pointing at your page's checkly-status-page.com address (set to DNS only if you use Cloudflare), and add the TXT records Checkly shows you to verify ownership. Verification is also what lets search engines index the page.

### How do subscribers get notified?
Visitors click "Get updates" on the page and enter their email. After they confirm a verification email, they receive a message for every incident update, including the one that resolves it, unless you opt out of notifying subscribers on a specific update. Anyone can also follow the page anonymously through its RSS or Atom feed, or run /feed subscribe against the Slack feed URL in a channel. Feed followers do not count toward your subscriber limit.

### Can I manage status pages as code?
Yes. StatusPageV3 defines the page, StatusPageV3Component defines each service or group, and StatusPageV3AutomationRule defines the rules that open incidents. All three are TypeScript constructs in the Checkly CLI, so they are versioned in git, reviewed in pull requests, and deployed with your checks. Already built a page in the app? Run checkly import status-page:<id> to pull it, its components, and its rules into your project, or reference it with StatusPageV3.fromId() and manage only the parts you want in code.

## Related

- [Status Pages (full page)](https://www.checklyhq.com/product/status-pages/)
- [Status pages docs](https://www.checklyhq.com/docs/communicate/status-pages/overview/)
- [StatusPageV3 construct reference](https://www.checklyhq.com/docs/constructs/status-page-v3/)
- [Dashboards](https://www.checklyhq.com/product/dashboards/)
- [Alerting](https://www.checklyhq.com/product/alerting/)
- [Pricing](https://www.checklyhq.com/pricing/)
- [Start for free](https://app.checklyhq.com/signup/)
