Create an election, collect ranked ballots, and compute Minimax‑TD results—shareable via a single link (no server required).
Ready
Setup
Vote
Bulk
Election setup
Tip: keep candidate names short (e.g., “A”, “B”, or “Smith”). You can reorder them later for ballot entry.
Reorder candidates by dragging the handle (≡). This does not affect results; it just changes the default ballot order.
Cast a ballot
Drag candidates to rank them from #1 (top) to last. Then click Add ballot. You can add multiple ballots (e.g., one per voter).
Privacy: ballots are stored in your browser (localStorage). Hosting this page creates a public link, but it does not send ballots to a server.
Bulk import ballots
Paste ballots (one per line). Format: A>B>C. Names must match candidates exactly.
Results
Pairwise
Ballots
Results
Add candidates and ballots, then click Compute results.
Pairwise matrix
Compute results to view pairwise comparisons.
Stored ballots
Ballots:0 You can export ballots for analysis or verification.
Want “real” public voting?
This app is static (no backend). For a public election where each voter’s ballot is stored remotely and results update live, you’ll add a backend (e.g., Supabase/Firebase) and require unique voting links.
Note: ballots are not included in the share link—only the election setup.