Status

What is up, what is being built, what is not yet wired.

Hashmark has shipped the public marketing site, the ingest rail, the story worker, and the core league surfaces. This page tells you exactly where each component stands. We will upgrade it to a real incident-history surface at public beta, with uptime metrics and post-mortems attached. Until then, this is the honest list.

7

Live

Operational surfaces already serving real traffic or verified smoke paths.

1

Building

Built in repo, with deployment or founder configuration still finishing.

4

Planned

Later-phase surfaces that remain intentionally deferred.

ComponentStateNote
Marketing siteLivehashmark.football — Cloudflare Pages, multi-page, SSL clean
DatabaseLivePostgres 16 on Hetzner studio-db-us-east, hashmark schema, daily backups
Playoff Vault never-delete triggerLiveSmoke-tested 2026-05-13 — direct DELETE raises soul-aligned exception
Schema migrationsLive0000–0005, 0014, and 0016 applied. Append-only from here forward.
Ingestion endpointLiveCloudflare Worker → Supabase Edge Function. Signed POSTs enqueue live drive-card jobs.
Web product (app.hashmark.football)BuildingProduct routes, league rooms, and admin surfaces are built; public deployment wiring is the remaining step.
Session systemLiveOTP-first app-managed sessions are live; Discord OAuth remains the optional founder gate.
Recap engineLivePrompt templates, queue, worker, archive, smoke coverage, and live Hetzner service are in place.
HashmarkIQ ratingPlannedMethodology spec targeted Week 10. Rating ships at public beta.
Discord botPlanneddiscord.js v14. Multi-user leagues phase, Week 11–13.
Voice recaps (ElevenLabs)PlannedHall of Fame tier feature. Week 15–18.
PC Companion (Electron)PlannedAuto-upload from a Windows Madden install. Week 19–21.

Recent incidents

2026-05-14 · Resolved · ~30 seconds

Cloudflare 1014 — CNAME cross-user banned

First post-deploy visit to hashmark.football returned Cloudflare error 1014 because both apex and www CNAMEs pointed at the generic hashmark.pages.dev rather than the account-bound hashmark-8mt.pages.dev. Patched via Cloudflare API; SSL provisioning completed cleanly. Captured as an operational lesson for future Pages setups.

How we'll communicate downtime

When something breaks once we're in beta: a banner on this page within 5 minutes, a Discord post within 10, an email to paid subscribers within 30 if the incident exceeds 30 minutes. Post-mortems for anything over an hour, published within 72.