Plumb Source on GitHub

Hackathon judging you can check.

Plumb is a self-hosted hackathon submission and judging portal. It corrects for harsh and generous judges, says how sure it is about every ranking, keeps a tamper-evident log of everything that happens, and signs its results so anyone can verify them offline.

Built for DOGFOOD 2026, "build the platform that will judge you". MIT licensed.

The demo, 4:03, captions on screen, no voiceover, in five chapters: a finished event and its signed records, an organizer mid-judging, the integrity checks, a judge scoring, and a participant submitting.

Run it

git clone https://github.com/nothans/plumb
cd plumb
docker compose up          # then open http://localhost:8080

There is no hosted demo on purpose: Plumb is built to run on an organizer's own machine, and it needs no network once it is running. It boots seeded with the DOGFOOD fixture data, three events at different stages, and ready-made logins printed on startup. The five-minute tour walks through it.

Verified, not just claimed

TiersChecked byResult
T1, T2The official DOGFOOD checker, run.py, byte for byte7 of 7 pass
T3, T4An extended checker in the same style: plain HTTP against the running portal, trusting nothing the server says about itself, with the requests behind every verdict listed39 of 39 pass
All of it82 tests, and CI running both checkers against a real docker compose up on every pushCI

What is different

Honest rankings

A mixed model removes each judge's lean, and every score gets a 90% interval and a calibrated chance of beating the next one. On the DOGFOOD fixtures, the honest answer is that projects are statistically tied, and Plumb says so instead of printing a confident 1 to 40.

A proof, not a paragraph

A simulation on the fixture's own judge graph shows the method beats raw averages and z-scores wherever judges differ, ties them when they do not, and that its probabilities come true as often as they claim. A regression test keeps it that way.

A vote nobody can steer

Ballots are shuffled per voter, counts stay hidden from everyone, organizers included, votes are sealed in the log until the vote closes, and an open vote cannot be cut short.

Results you can verify

Every change lands in a hash-chained audit log the database will not let anyone edit. Published results, judge records and team certificates are Ed25519-signed and check out offline.

Read more