A URL you can put in an email at three in the morning.
Every organisation gets a page anyone can open, no account required. It lives on your own subdomain of statusowl.app the moment you create it, and on your own domain as soon as you point the DNS.
Your name, on statusowl.app.
You choose the subdomain when you create the page. It is checked for format, checked against a reserved-word list, and checked for global uniqueness before it is yours.
https://acme.statusowl.apphttps://status.acme.comA custom domain with automatic SSL is on every plan, including Free. You point a CNAME at status-pages.statusowl.app and the certificate issues and renews with nothing to install.
- Length
- 2–63 characters
- Characters
- a–z, 0–9, hyphen
- First and last
- Letter or number
- Consecutive hyphens
- Not allowed
- Reserved words
- Blocked
- Uniqueness
- Global
If a subdomain is taken or reserved you are told before you save, not after. Names that could be mistaken for StatusOwl infrastructure are on the blocklist.
No account, no cookie banner, no dashboard.
Someone who has never heard of StatusOwl should be able to answer their question in about two seconds.
When a maintenance window is in progress, an incident is open, or a monitor is failing, a coloured banner sits at the top of the page saying so. When everything is up, there is no banner — the service rows speak for themselves.
Current state, uptime over the last thirty days to two decimal places, and the most recent response time.
Hoverable, with the date, the daily uptime figure, the average response time and the check count for that day.
Open incidents in the banner, upcoming windows listed ahead of time, and the archive underneath — each with its own permanent page.
Uptime bars, response times and incident history are individually toggleable per page.
Thirty seconds, and it behaves itself.
A status page is usually left open on a second monitor during an outage. That is the case this is built for — including what happens when the network the visitor is on is the thing that is broken.
Not built. There is no subscribe form on status pages and no subscriber list in the dashboard. Publishing an incident today updates the page; it does not send anything to anyone. There is no subscribe button on the page, so a visitor who wants to be told has to keep the tab open or come back.
An open page re-fetches the current state of every service, the open incidents and the maintenance windows. Nobody has to press refresh, and you do not have to tell people to.
If the tab is in the background the fetch is skipped rather than queued. A page left open in a pinned tab for a week does not spend the week making requests. It picks up again on the first tick after the visitor comes back.
If the request errors or returns a non-OK response, the page keeps showing the last data it successfully received. It does not blank out, and it does not flip a service to unknown because one fetch failed.
The foot of the page carries an 'Updated Xm ago' line derived from the most recent check it actually has, alongside the full timestamp. A visitor can always tell how old the reading is.
A page a search engine can actually read.
Plenty of status pages are an empty shell that fills itself in from an API call. Ours is not, which matters when someone searches your product name plus the word down.
The status is in the HTML
The page is rendered on the server, so the first response already contains the current state, the service list and the incident history. Crawlers and link previews do not have to run JavaScript to see it.
Real titles and descriptions
The document title is your page's name and the meta description is the description you set on it, rather than one generic string shared by every customer.
Link previews
Open Graph and summary-card tags are generated per page, so the link pasted into Slack, Teams or a tweet shows your page name and description.
Nothing leaks
A page that is switched off or set to private returns a 404, so there is nothing for a crawler to index and no trace of it in search.
The visitor gets the last word on the theme.
You set the page default. A toggle in the header lets each visitor override it, and the page remembers what they picked.
Light, dark or auto, per page. Auto follows the visitor's operating system setting and keeps following it live if they change it mid-session.
The toggle in the page header switches immediately and stores the choice in the browser. On their next visit their choice wins over your default.
A small script runs before the first paint and applies the saved choice to the document, so a dark page never flashes white on the way in.
Claim your subdomain.
Pick a name, attach a monitor, and the page is live. Move it to your own domain whenever you are ready — that part is free too.