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 ZEUSRead

Oct 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 ZEUSRead

Sep 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 LindqvistRead

Sep 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 ZEUSRead

Sep 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 OkonkwoRead

Sep 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 ZEUSRead

Sep 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 LindqvistRead

Sep 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 ZEUSRead

Page 1 of 1 · 8 posts · more after judging

1Next →