---
title: "Status page and custom status page | Logdash"
description: "A status page fed by real uptime checks: hosted by Logdash, a custom status page on your own domain, or your own build on a public JSON API. Free plan included."
url: https://logdash.io/status-page
---

# Status page

A status page is a public page that says whether your product works right now and how it did over the last 90 days, and Logdash builds one from its own uptime checks, so it turns red on the next failed check without anyone updating it by hand.

Most status pages are updated by a person. During an outage that person is busy fixing the outage, so the page keeps saying all systems operational well into the outage, which is exactly when customers open it. A status page earns its keep only if it turns red without anyone touching it.

A Logdash status page reads from the same HTTP checks that alert you. Each monitor is checked every 5 minutes on the free plan, every minute on Builder and every 15 seconds on Pro, and the page shows what those checks saw.

## What the page shows

- One overall status: operational, degraded or outage.
- A row per monitor with its uptime over 24 hours, 7, 30 and 90 days.
- 90 daily bars per monitor, each with its checks and average latency.
- A response time chart over the last 100 checks, and when the data was last updated.
- No incident posts, maintenance windows or subscriber emails. The page reports checks, not prose.

## How the status is decided

- A check is up when it gets a 2xx or 3xx answer. Anything else, or no answer within 10 seconds, is down.
- A monitor is down when its latest check failed, degraded when any of its last 10 checks failed, and up otherwise.
- The page is in outage when every monitor is down, degraded when any monitor is not up, and operational when all are up.
- Uptime is successful checks over total checks in the window.
- The page is composed at most once a minute, so what a visitor sees can be up to about three minutes old. The Telegram alert does not wait for it.

## Your domain or your own design

The hosted page lives at `logdash.io/d/<id>` on every plan. On Pro, one CNAME to `statuspage.logdash.io` puts it on a subdomain such as `status.example.com`, with HTTPS handled for you. The other route works on any plan: every published page is also public JSON with no API key, so you can render it in your own app with the MIT React or Svelte component, or deploy the Next.js starter on any domain you own.

 Logdash's own status page, as JSON 

```bash
curl -s https://api.logdash.io/v1/status_pages/status.logdash.io \
  | jq '{status, updatedAt, monitors: [.monitors[] | {name, status}]}'
```

Wherever it ends up, host it apart from your app. A status page that shares servers, deploys or DNS with the product goes down with it, at the one moment people come looking.

### Logdash vs hand-updated status page tools

| Feature                        | Logdash                                   | Statuspage, incident.io                     |
| ------------------------------ | ----------------------------------------- | ------------------------------------------- |
| What turns the page red        | The next failed check                     | A person, or a monitoring tool you connect  |
| Incident posts and maintenance | None                                      | Written by you, free plans included         |
| Subscribers on the free plan   | None                                      | 100 on Statuspage, unlimited on incident.io |
| Your own domain                | Pro at $15, or your own build on any plan | Statuspage from $29, incident.io free       |

### When a dedicated status page tool is the better pick

- You write incident updates by hand and want customers to subscribe to them by email or SMS. Logdash has no incident editor and no subscriber list.
- You announce scheduled maintenance on the page. Logdash shows checks only.
- Your monitoring already lives elsewhere and only the communication layer is missing.

## Set it up

1. **Add your monitors** Create one Logdash service per thing customers can tell apart, such as the app and the API, and point each HTTP monitor at a health URL.
2. **Publish the page** Pick the monitors, name the page and publish it. The free plan includes one status page and five monitors.
3. **Break one on purpose** Connect Telegram and make one health URL return a 503\. The row turns red within a few minutes, and the Telegram alert reaches you first, with the monitor name and status code.

### What is a status page? 

A public page, usually on a status subdomain, that says whether your product works right now and how it did recently. Customers check it before they email you, so a page that stays green through an outage costs you trust twice.

### How does a status page know my app is down? 

Either a person sets it, or a monitor does. Logdash pages follow HTTP checks from outside your network, so a failed check turns the row red with nobody in the loop.

### Is a Logdash status page free? 

Yes. The free plan includes one published status page, five monitors checked every 5 minutes, Telegram and webhook alerts and the public status page API. A custom domain on the hosted page needs Pro.

### Where should a status page be hosted? 

Anywhere your app is not. The hosted Logdash page runs on Logdash infrastructure. If you build your own, give it its own project and subdomain so one outage cannot take both down.

## All status page guides

[Status page API](https://logdash.io/status-page/api): Every status page you publish in Logdash is also public JSON at api.logdash.io/v1/status\_pages/:id, with no API key and CORS open to any origin, so you can render it on your own site in your own design.

[Open source status page](https://logdash.io/status-page/open-source): Logdash is AGPL-3.0 and its status page client, components and Next.js starter are MIT, but the checks and the data run on hosted Logdash, so if the whole stack must run on your own hardware, Uptime Kuma, Gatus or Upptime are the honest picks.

[Free status page self hosted](https://logdash.io/status-page/self-hosted): Run the MIT-licensed Logdash Next.js starter on your own server or in Docker for a free self-hosted status page, while the checks behind it stay on the Logdash free plan, because the monitoring itself does not self-host in one command yet.

[Free status page](https://logdash.io/status-page/free): The free Logdash Hobby plan includes one public status page fed by up to 5 HTTP monitors checked every 5 minutes, plus Telegram and webhook alerts, uptime badges and the status page API, with no credit card and no trial clock.

[Free status page with custom domain](https://logdash.io/status-page/free-custom-domain): The hosted Logdash status page gets your own domain only on the $15 Pro plan, but the status page API is free on every plan, so a page you deploy yourself from the Next.js starter can run on status.yourdomain.com for nothing.

[Custom status page](https://logdash.io/status-page/custom): Logdash gives you two kinds of custom status page: the hosted page on your own subdomain through one CNAME to statuspage.logdash.io on Pro, or a page you build yourself on the public API, on any domain and any plan.

[Status page template](https://logdash.io/status-page/template): The Logdash Next.js starter is a status page template you deploy to Vercel in one click: paste a status page id and it serves live uptime for your monitors, rendered on the server and refreshed every 60 seconds.

[React status page](https://logdash.io/status-page/react): Install the Logdash status page component with one shadcn command, pass it your status page id, and your React or Next.js app renders live status, uptime per monitor and 90 days of history in your own Tailwind theme.

[Status page embed](https://logdash.io/status-page/embed): Embed a Logdash status page by dropping a copy-paste component into your site, which renders live status and 90 days of history from a public JSON API, or by adding SVG uptime badges anywhere an image tag works.

[Status page examples](https://logdash.io/status-page/examples): The status pages worth copying are GitHub for incident updates, Vercel for per-region components, Stripe for a short component list, Linear for showing an unflattering number and Cloudflare for maintenance notices.

[Status page best practices](https://logdash.io/status-page/best-practices): Host the status page apart from your app, drive it from real checks, list only what customers can tell apart, show uptime over a stated window rounded down, and post a timestamped update at least every hour during an incident.
