metaculus · backstage, reviewed checking 4 feeds…

Backstage, reviewedlive feeds · proper lifecycles · honest UI

The original /backstage is a descriptive document — what the dashboard is supposed to do. This page is what the doc would look like if the doc were a live thing, reporting the state of each named endpoint with a real lifecycle.

Lifecycle vocabulary borrowed from React/SWR/RTK

loading Request in flight. No prior data; the page knows nothing yet. shown while: initial fetch or manual re-fetch
ready A response arrived within the freshness window (60s). Data is shown with its observed-at timestamp. shown until: 60s after last fetch
stale Data exists but the freshness window has elapsed. Still shown, with "stale since" indicator. Click refresh to re-fetch. shown after: 60s without re-fetch
error The last fetch failed (timeout, 4xx, 5xx, or upstream refused). The page reports what failed and when. persists until next successful fetch

Live feeds same-origin via hub2 Caddy proxy

Architecture preserved from original /backstage

┌─────────────────────────────────────────────────────────────────┐ │ METACULUS FORECAST DASHBOARD │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ ┌──────────┐ ┌─────────────┐ │ │ │Metaculus│───▶│ Parser │───▶│ Formatter │ │ │ │ API │ │(Clojure) │ │(text/html) │ │ │ └─────────┘ └──────────┘ └─────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ ┌─────────────┐ │ │ │ Confidence │ │ TTE Effects │ │ │ │ Intervals │ │ (terminal) │ │ │ └──────────────┘ └─────────────┘ │ │ │ │ Outputs: JSON API │ HTML Dashboard │ Terminal (TTE) │ └─────────────────────────────────────────────────────────────────┘ Source: ~/fleet-archives/archive/DEC3/metaculus Stack: Babashka + HTTP-Kit · POSIX shell collectors · TTE for terminal

What "reviewed" means here

The original /backstage describes endpoints; this page shows their behaviour. The difference matters because endpoints lie about themselves. /api/questions on the live dashboard returns 500 most of the day because its upstream (metaculus.com API) frequently 403s — the original doc does not acknowledge this. The reviewed page surfaces the failure state in the UI with a specific error code and timestamp.

Each feed has four lifecycle states. The page favours showing stale over showing nothing, because the previous successful response is usually more useful than a spinner.

Defences in this page