The comparison, hosted status pages vs owning one
A Statuspage alternative you buy once.
Rented by the month, priced by the page.
A hosted status page keeps your uptime history in the vendor's cloud and bills by the page. This is the case for owning one instead, including who should not.
What renting a status page costs.
Public prices, no editorializing. Hosted status-page products are priced per page, per tier, per month.
Statuspage
Hosted · monthly
Public pages run from $29 to $1,499 per month by tier (subscribers, team members, SMS); private pages start higher, and audience-specific pages are priced per page. It is a polished, battle-tested product, and even at the entry tier three years is seven times the price of Vigil, on a higher tier far more, without ever owning anything.
SaaS tier
Instatus · Better Stack etc.
The modern SaaS cohort is cheaper and good; each vendor prices by pages, seats and branding removal. The structure is the same: the bill scales with your client count, and your uptime history lives in their cloud, priced again every month.
Self-hosted · $149 once
One payment, $149, one company: unlimited status pages (multi-tenant, branded per tenant, on your domains, public, private or password-protected, with email subscribers included, never priced per subscriber), unlimited monitors and seats, plus the part hosted status pages don't include at any tier, the monitoring, verified auto-recovery and incident timeline that feed the page, in the same codebase, on your Postgres.
Prices as published by vendors, July 2026, check their pages; tiers move. Ours doesn't: $149, license readable before you pay.
What you give up by self-hosting.
Self-hosting swaps a vendor's operations for your own. Both sides of that swap, in full.
Their ops team
Their global probe network and 24/7 ops team. Vigil checks from wherever you run it, including remote probe agents on your own machines, and your team keeps all of them alive. The sane setup is a $5 VPS outside the infrastructure it monitors, so the status page never shares fate with what it watches. If running a VPS is not on the table, stay on SaaS.
Ownership
No recurring bill, no per-page math, no seat counting. Your uptime history in your Postgres, exportable, queryable, yours when you leave. Full source with private modification rights: rebrand the sign-in screen, add a check type, wire your own alerting. And status pages served from an incrementally-cached render, so an outage traffic spike is absorbed by the cache instead of your database.
The demo
Click through the interactive demo, the real app, seeded data, no login: monitors fail, an incident opens itself, the status page updates, recovery closes it. If that loop covers your case, the rest is a docker compose up away.