dogfood. blog
DOGFOOD Blog
Build logs, judging math and self-host guides from the team building the platform that judges itself.
8 posts
Oct 3, 2026 · 9 min read
Run the whole platform with one command: setup guide (main branch)
Clone main, docker compose up, seed fixtures, test accounts, and the 7/7 acceptance checker — everything to go from zero to judging in minutes.
Team ZEUSReadOct 3, 2026 · 11 min read
Build the platform that will judge you: how we built DOGFOOD 2026
FastAPI + Next.js + Postgres with backend-enforced judge isolation, z-score calibration and one-command Docker — our Write-Up Quest build log.
Team ZEUSReadSep 28, 2026 · 8 min read
Fair ranking is not an average: z-scores, Bradley-Terry and Borda
Raw averages reward lucky judge draws. How per-judge calibration plus two extra ranking views produce a ROBUST/FRAGILE verdict organizers can defend.
Wei LindqvistReadSep 25, 2026 · 6 min read
Judge isolation belongs in the backend, not the frontend
The #1 checker failure point across teams: judges must only see their own scores. How require_role deny-by-default plus 403s passes 7/7.
Team ZEUSReadSep 20, 2026 · 7 min read
Community voting without ballot stuffing
Email-gated tokens, deterministic per-token shuffles, hidden-until-published results and a vote_audit_log organizers can actually read.
Ada OkonkwoReadSep 15, 2026 · 7 min read
Stretch without sprawl: API keys, webhooks and verifiable certificates
Hashed X-API-Key REST with OpenAPI docs, HMAC webhooks with backoff, Ed25519 certificates and an embeddable gallery widget.
Team ZEUSReadSep 10, 2026 · 5 min read
Demos that rebuild in one command: Calibration Cup and Grand Jury
No screen-recorded clicks: node demo-5min/make.mjs narrates, records the browser tour to voice beats, and muxes both cuts from a fresh seed.
Wei LindqvistReadSep 5, 2026 · 6 min read
What we chose not to fix (yet): the threat-model edition
No audit hash-chain, no CSRF tokens, single-process rate limits — the accepted risks we disclose on screen instead of hiding.
Team ZEUSReadPage 1 of 1 · 8 posts · more after judging
1Next →