Live status — independent monitor

Status pending — first check has not run yet

Each of the three free online face-swap demos at /face-swap is pinged from an independent GitHub Actions runner every 5 minutes. Results are written to a Supabase table and the page below reads from that table directly. Snapshots refresh every 60 seconds.

Snapshot

How this status page is generated

  • An independent GitHub Actions workflow runs every 5 minutes from GitHub's hosted runners — not from the same servers that host the demos.
  • Each demo is fetched with a 10s timeout. A 2xx, 3xx, or 401 response counts as "up" (the tunnel and the app are both reachable). Anything else, or a network error, counts as "down".
  • Every result is written to the demo_health_checks Supabase table. This page reads the latest row per demo, the uptime aggregates over 24h and 7d, and the last 60 checks for the strip chart.
  • On any status transition (up→down or down→up), a webhook notifies our internal Discord channel. Recovery alerts are posted as well, so you can see when a tunnel comes back.