fivebar

How we built our own status page

30 October 2026

A sun with a heartbeat across it, setting into a banded sunset over a skyline of bars

A status page needs to stay up when the service it reports on doesn’t. It saves everyone a support email, and tells customers plainly whether you’re up or down.

Ours is at status.fiveb.ar. It’s a small Go script on a server of its own that checks every part of fivebar once a minute and writes a plain page. The whole thing is about 1,500 lines, with nothing outside Go’s standard library. It costs us five bucks a month and took less than an hour to build.

status.fiveb.ar: everything working, a grid of the latency between fivebar’s seven cities and its core, then visitor counting, the dashboard and API, and DNS, each with 90 days of history
status.fiveb.ar on 30 October 2026.

Why not a hosted one

There are very good hosted status pages, that are reliable and have been around a while. These are the ones we looked at.

ServiceWhat it isFree planPaid from
Atlassian StatuspageStatus page fed by your own monitoring, no MCP server of its own100 subscribers$29/mo
Better StackMonitoring, on-call and status pages, with its own MCP server10 monitors$34/mo per seat
InstatusStatus pages with monitors, no MCP server of its own15 monitors$20/mo
UptimeRobotMonitoring with status pages, with its own MCP server50 monitors$12/mo, yearly
Uptime KumaOpen-source monitor you host, no MCP server of its ownOpen sourceSelf-hosted
UpptimeOpen-source monitor on GitHub Actions, no MCP serverOpen sourceNone

Prices in US dollars, from each service’s pricing page on 30 October 2026. Statuspage, Instatus and Uptime Kuma have community-built MCP servers.

We still made our own, because it suits how we run fivebar. Most of it runs on infrastructure we built ourselves, as a CDN with servers in seven cities. So each minute our checker asks every city to fetch fiveb.ar’s sign-in page from our core servers and pass it on, the same trip a real visitor’s request makes. A check on one URL can’t tell you that.

fivebar’s pages also load nothing from other companies, and we didn’t want our status page to be the exception. Its fonts, logo and stylesheet are built into the script, and fivebar counts its visits like any other site.

Honest about our own problems

A status page is only worth having if people believe it. Ours runs with a different provider from everything else, so it stays up when we don’t. It double-checks before calling anything down, and if the checker stops, the page says so rather than staying green.

When something goes wrong, we write a short note on what happened and whether anything was lost. A city that can’t reach the core keeps its visits until it can, so they’re counted late, not lost.

What you’ll see

At the top is a grid of how quickly each of our cities reaches the others and the core. Each city measures this itself, and the checker adds a row of its own from outside fivebar, so a slow link shows at a glance.

Below that are visitor counting, the dashboard and each city, with 90 days of history. The share of minutes up is rounded down, so one bad minute never shows as 100%.

One your AI assistant can read

fivebar is built to be used through AI assistants, so the status page is too. It publishes the same information as data for apps, with an llms.txt explaining it.

Ask Claude or ChatGPT why your visits dipped on Tuesday and, through fivebar’s MCP server, it can check whether we had a problem that day before looking at your site. The hosted services’ MCP servers help you run your own monitors. Ours is for our customers, so their assistants can tell when a dip was down to us.

If you’re curious, have a look at status.fiveb.ar. We hope you’ll mostly find it green.