How it works
We never ping anyone. Every 5 minutes we read each provider's public status page, keep what changed, and grade everyone on one rubric.
Where the data comes from
- Official status page APIs: Atlassian Statuspage for most, Railway's and Heroku's own for those two.
- User-Agent
downagain.dev/1.0 (+https://downagain.dev/about), conditional requests, backoff on errors. An unreachable status page means "status unknown", never "down". - Every incident and update is kept, even if the provider later edits or deletes it.
- History starts with whatever the status API exposes, usually the last 50 incidents. Provider pages show the start date.
- The whole board as JSON: /api/status.json. Free to use. A link back is plenty.
Severity
Providers' own labels don't agree with each other, so we use one question: how badly did this hurt the people building on it?
| Tier | What it means | Weight |
|---|---|---|
| Sev 1 · Lights out | Prod site, API or database down, or data loss | 10 |
| Sev 2 · Bleeding | Prod degraded or partly down | 4 |
| Sev 3 · Can't ship | Can't deploy, build or manage it | 1 |
| Sev 4 · Papercut | Docs, status page, slow dashboard | 0.2 |
| Not counted | Scheduled maintenance inside its announced window | 0 |
Tiers follow impact, not component names: a billing outage that freezes accounts can't ship, a slow docs page is a papercut. Security incidents move up one tier (Sev 2 at least) and add 600 penalty points. Confirmed data loss or exposure is always Sev 1. A cloud incident the provider confines to one region tops out at Sev 2. Every incident shows why it got its tier, and tiers can be corrected by hand.
Rules grade first. Claude then reads every update the provider posted and refines it: what broke, how hard, how widely. One region or a slice of customers counts less than everyone. Those incidents are tagged AI-graded, and long ones get a short summary from Claude. Open “Why this grade” on any of them for the rules' call, Claude's call, the model and date, and the raw record: exactly what Claude read and answered. A manual review always wins.
Grades
Each incident scores weight × scope × minutes, from start until the provider says it's monitoring a fix or resolved. Grades total the last 90 days, the same window for everyone.
| Scope | Who was hit | × |
|---|---|---|
| Global | Most customers or regions | 1 |
| Unclear | The provider didn't say | 1 |
| Regional | One region, country or a few locations | 0.3 |
| Subset | One plan, model or feature, or a small share of customers | 0.3 |
| Local | One data centre or point of presence | 0.1 |
A hundred-location network that reports every local blip shouldn't score like one that went down everywhere. Security penalties aren't scaled.
| Grade | Penalty points, 90 days |
|---|---|
| A+ | 0–60 |
| A | 61–300 |
| B | 301–900 |
| C | 901–2,400 |
| D | 2401–6,000 |
| F | 6,001+ |
Two area grades use the same scale. PROD: your users are hit. SHIP: you can't deploy, build or manage, including dashboard, auth and billing outages. Papercuts count toward the overall grade only. Admitted uptime counts only Sev 1 time the provider posted itself, so it's a best case. Providers grade their own homework; we just add it up.
Cost and bang for buck
Status pages don't publish prices, so cost is the one number here we curate by hand. For each category we price one reference workload against every provider's own public pricing page:
- Hosting: One small production web app. 512 MB app on all month, 1M requests, 100 GB out, commercial use, one seat. Cheapest plan that runs it.
- Cloud: One small always-on VM. 2 vCPU (burstable) and 4 GB Linux VM on all month, 30 GB SSD disk, a public IPv4, 100 GB out. On-demand, cheapest US region, no commitments.
- Databases: One small production database. 10 GB of data, about 1 GB of RAM on all month, 10M queries a month, one region, no replicas, commercial use. Cheapest plan that runs it.
Every provider page shows the line-by-line working, the source link and the date we last checked it. Usage-billed totals are marked as estimates with the assumption spelled out. A price older than 90 days is flagged as possibly out of date.
We don't blend price and reliability into one score, because any weighting would be our opinion dressed up as data. Instead, a provider is best value when no other provider in its category costs the same or less with the same or better 90-day grade. Everyone else gets told who beats them. AI APIs have no cost on purpose: models differ too much in capability for price alone to be fair.
The obvious question
Yes, we're hosted on Railway. When Railway is down, so are we.
Missing something?
Suggest a provider or report a wrong grade on GitHub. Made by @ejqs. Useful? Buy me a coffee.