GitHub

Choosing a status page

A status page you host yourself

There are two ways to have a status page: rent one, or run one. This is an honest account of what each costs you — written by the people who make one of them, which is worth knowing while you read it.

The two arrangements

Hosted status pages

Atlassian Statuspage, Better Stack, Instatus, Uptime.com

Someone else runs the page. That is the entire proposition and it is a real one: the status page stays up when your infrastructure does not, which is the exact moment a status page matters most, and nobody on your team is paged for it.

What you give up is the other side of the same coin. The page lives on infrastructure you do not control, your incident history and your subscriber list live in someone else's account, and the terms — what it costs, what the limits are, what happens to the data — are theirs to change. If that trade is right for you, take it. It often is.

Self-hosted, open source

Uptime Kuma, Cachet, Gatus — and TERN

You run it, you can read every line of it, and nothing about your services leaves your machine. The history is in your database, the page is on your domain, and no part of it can be repriced or discontinued.

The cost is that it is now yours to keep alive. It needs a host, it needs updating, and — the part people underestimate — a status page on the same infrastructure as the thing it watches goes down with it. That is a real limitation of every option in this family, TERN included, and it is worth saying before you choose one rather than after.

The difference, in six lines

Deliberately structural. Prices, quotas and feature lists change without notice, and a table full of them is out of date long before anyone notices — these six do not move.

  Hosted TERN
Who runs it The vendor You
Where the history lives The vendor's account Your database
Source Usually closed AGPL-3.0, readable in full
Cost A subscription A server you already have
If your infrastructure is down The page stays up The page may go down with it
Data leaving your network By design None

Feature by feature

The ten status pages people shortlist most often, and this one. Every row names the source it was read from and the date — all eleven read on 8 August 2026. The product name is the link. Feature sets move; treat this as true on that date and follow the link if it matters to your decision.

“Not stated” is not a “no”. It means we read that product's own page and it does not say. Several of these are certainly things the product does and simply does not advertise there — Statuspal's home page, for one, is positioning rather than specification, which is why its row is almost entirely blank. We would rather print a hole than fill it with a guess about somebody else's work.

“Runs its own checks” compares unlike things. Some products model a keyword match or a JSON query as their own kind of monitor; TERN models them as assertions on the HTTP check, so they do not appear in that cell even though it does both — and they compose, which separate monitor types cannot: one check can assert a status code, a latency of 800 ms as degraded, 3 s as down, and a JSONPath value, all at once.

One asymmetry worth naming before you read it: our row is the only one taken from source code, so it is the only one that can be answered exhaustively. The other ten come from pages written to sell, which name what the vendor chose to name. That flatters us, and the flattery is an artefact of where the information came from rather than a difference between the products. Our own row still says “not stated” for a private page, because nothing in the schema provides one.

Eleven status pages compared across seven capabilities. Each row names the source it was read from and the date it was read.
Product Runs on your serverSourceRuns its own checksYour own domainPrivate pageSubscriber channelsScheduled maintenance
TERN Its own schema and docs · read 8 August 2026 Yes AGPL-3.0 HTTP, TCP, ping, DNS, TLS cert, push, WebSocket, Docker Yes Not stated in the source we read; this is not a no Email, webhook, Slack, Teams Yes
Atlassian Statuspage Its features page · read 8 August 2026 No Proprietary Not stated in the source we read; this is not a no Yes Public, private, audience-specific Yes, channels not named Yes
Better Stack Its status page product page · read 8 August 2026 No Proprietary Yes, 30-second checks Yes SSO, password, IP Email Yes
Hyperping Its home page · read 8 August 2026 No Proprietary Yes, from several locations Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Email, Slack, Teams, PagerDuty, webhook Not stated in the source we read; this is not a no
incident.io Its status pages page · read 8 August 2026 Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Public, private, internal Email, Slack, RSS Not stated in the source we read; this is not a no
Instatus Its home page · read 8 August 2026 No Proprietary Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Yes Slack, Teams Not stated in the source we read; this is not a no
OpenStatus Its README · read 8 August 2026 Yes AGPL-3.0 Yes, 28 regions Yes Password protection Email, RSS, webhook Maintenance windows
Status.io Its home page · read 8 August 2026 No Proprietary Links external tools Yes SSO, IP restriction Email, SMS, Slack, Teams, webhook, RSS Yes
StatusGator Its home page · read 8 August 2026 No Proprietary Yes, plus aggregates vendor status pages Yes Yes Email, SMS, Slack, Teams, PagerDuty, Discord Not stated in the source we read; this is not a no
Statuspal Its home page, which is positioning rather than specification · read 8 August 2026 Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no Not stated in the source we read; this is not a no
Uptime Kuma Its README · read 8 August 2026 Yes MIT HTTP, keyword, JSON, TCP, WebSocket, ping, DNS, push, Docker Yes Not stated in the source we read; this is not a no 90+ services Not stated in the source we read; this is not a no

When TERN is the wrong choice

If it is the right choice

One command. It writes its settings, sets up its storage, and waits until the page answers.


        
        curl -fsSL -o setup.sh https://raw.githubusercontent.com/lelabnet-creator/ternproject/main/scripts/setup.sh && sh setup.sh
      

See what it draws Documentation Read the source