The Vibe Board
Eight services your build depends on, on one board, in the language of a railway station. Before you spend an hour debugging your own code, check whether the thing you are calling is actually running.
What the words mean
A departure board only has a few things it is allowed to say, and each one has to mean something exact. These are ours. Colour is never the only signal — the word is always there too.
| Reads as | When |
|---|---|
| ON TIME | No active incident on the components we track, and the provider's own page indicator is clear. |
| DELAYED | Something we track is running slow, or the provider has opened a minor incident. |
| REDUCED SERVICE | Part of the service is out - a partial outage, or a major incident on the provider's page. |
| CANCELLED | A full outage on something we track, or a critical incident. The lamp pulses. |
| RESUMING | The provider has applied a fix and is watching it. Not fixed yet, but no longer broken. |
| ENGINEERING WORKS | Planned maintenance is in progress and nothing worse is happening. |
| NO SIGNAL | We could not reach the feed, could not parse it, or the last good read is over five minutes old. Never read this as healthy. |
No signal is not good news. It means we could not reach the feed, could not parse it, or the last successful reading is more than five minutes old. A row in that state is telling you it does not know — never that the service is fine.
The board, in words
Every row above, with what it actually covers and a link to the provider’s own page. If you are reading this without JavaScript, this table is the part that always works — and the official pages below are always the last word.
| Service | What this row covers | Now | Official page |
|---|---|---|---|
| ANTHROPIC | Claude the model, the API your agents call, and Claude Code itself. | NO SIGNAL | status.claude.com |
| OPENAI | GPT models, the Responses and Chat Completions APIs, and Codex. | NO SIGNAL | status.openai.com |
| Gemini through Vertex AI, the Google half of most agent stacks. | NO SIGNAL | status.cloud.google.com | |
| XAI | Grok and the xAI API. | NO SIGNAL | status.x.ai |
| CURSOR | The editor, its cloud agents, and the Cursor CLI. | NO SIGNAL | status.cursor.com |
| GITHUB | Copilot and the model providers behind it. Not git pushes, that is a different row we do not draw. | NO SIGNAL | www.githubstatus.com |
| VERCEL | Builds, deploy hooks and the CDN, which is to say whether your ship button works. | NO SIGNAL | www.vercel-status.com |
| SUPABASE | Postgres, Auth and the API gateway, the backend most vibe-coded apps actually run on. | NO SIGNAL | status.supabase.com |
How it is wired
There is no server here. Your browser asks each provider’s public status feed directly, and this page turns the answer into one of the seven words above. Nothing is stored, nothing is logged, no account is needed, and no key is involved — every one of these feeds is published openly and sends the header that invites browsers to read it.
That is also the honest answer to what this costs to run: nothing, at any traffic level. A status board that gave away model credits would cost real money per visitor and would have to be rationed. This one gives away no credits at all. It reads eight small public JSON documents, the same ones the providers already serve to millions of people from their own cached edge, and it does the reading on your machine rather than ours. Ten visitors and ten million visitors cost the same, because the marginal cost per visitor is genuinely zero.
Three adapters do the translating, because the platforms disagree about what health even is. Statuspage names a state on every component, so we read it directly. Incident.io names no state at all and instead publishes a list of open incidents, so health is the absence of an entry. Google publishes a history file where the current incidents are the ones with no end time. Getting any of those three backwards would produce a confident green light built on a feed nobody read, which is the one failure this page is not allowed to have.
Rows are refreshed about once a minute while this tab is in front of you, and not at all while it is in the background. If a provider is unreachable, that row goes dark and the rest keep working.
What it will not tell you
It will not tell you your app is fine. Every one of these providers can be entirely green while your build is broken, because most outages are local: a bad key, a rate limit you personally hit, a region you did not think about, a dependency you changed an hour ago. The board answers exactly one question — is it me, or is it them? — and that question is worth answering first because it is cheap and it eliminates the most expensive wrong assumption.
It is also not an alerting system. There is no history, no uptime percentage, no notification, and no promise that a reading is correct at the instant you look at it. When a row shows something serious, open the provider’s own page from the table above: they own the truth, we only read it.
One row is deliberately dark. xAI publishes no machine-readable status feed we could verify — the endpoints other providers use all return errors, and the only thing on offer is an RSS log of past incidents, which cannot answer what is happening now. Rather than quietly drop the row and let its absence imply everything is fine, it stays on the board reading no signal, with a link to the page a human can read.
Next
If everything above is green and your build still will not run, the problem is in your code, and there is a faster way to find it than reading the whole thing again. Take the Vibe Check — a short set of questions about what you actually verified, scored in your browser, which tells you what to fix first. Or start with the lessons if you want the habit rather than the diagnosis.