All posts
Ada OkonkwoOrganizer, Sample Hack 2026votinganti-abusecommunity

Fair ballots

Votes start at POST /api/events/{id}/voting/token — 5 per hour per email. Ballot order is a deterministic per-token shuffle: fair ordering, stable reloads, no position bias.

Results stay hidden from the public until results_published_at; organizers always see them. Comments go through an organizer approve queue.

Abuse controls

One vote per person is a unique (event, project, voter_email) constraint, backed by per-IP rate limits and a duplicate-detection audit entry. Every issue, rejection and rate-limit lands in vote_audit_log with IP, email and user agent.

Honest limit, stated in THREAT-MODEL.md: email is cheap, so determined Sybils need organizers to actually read the audit log. We built the log view for exactly that.

Run it yourself

Every post maps to a real route or file in this repo. Start with the gallery, then the docs.

Browse projectsMore posts

Keep reading

View all