Live · refreshes every minute

Client site status

Every 5 minutes a Cloudflare Worker requests each site I've built, times the response and stores the result in a D1 database. This page reads it back through a small JSON API.

Loading live status…

How it works

  1. Cron trigger. Cloudflare runs the Worker's scheduled() handler every 5 minutes.
  2. Checks. All sites are requested in parallel with a 10-second timeout. The response time is the time to the first response headers, and the body is never downloaded.
  3. Storage. Results go into D1 (Cloudflare's SQLite) in a single batch, and rows older than 30 days are pruned in the same batch.
  4. API. /api/status aggregates uptime and medians, and is cached at the edge for 60 seconds.
  5. UI. This board is a Svelte island that polls the API once a minute.

The list of sites comes from the same markdown files that generate the case studies, so adding a project adds it to monitoring.