About civilsort
←Sort it out together.
How It Works
- Create a ballot with an optional title (e.g., "Friday Lunch Vote")
- Share the URL with participants — use "Copy Link" or "Share" from the menu (☰)
- Control access with the Open/Closed toggle:
- Open — new visitors can join and vote
- Closed — only existing participants can access
- Add items that everyone can vote on
- Rank your preferences by dragging items into the "Ranked" zone (top = most preferred)
- View results in real-time on the Results tab
The Schulze Method
civilsort uses the Schulze method (also called Beatpath) to compute rankings. It's a Condorcet completion method that:
- Counts pairwise preferences — for every pair of items, it counts how many voters prefer one over the other
- Finds the strongest paths — uses an algorithm similar to Floyd-Warshall to compute the strongest indirect preference between any two items
- Handles cycles gracefully — if voters prefer A>B, B>C, and C>A (a "Condorcet paradox"), the Schulze method resolves it by finding the strongest paths
- Elects Condorcet winners — if one item beats all others head-to-head, it always wins
Incomplete Rankings
You don't have to rank every item:
- Ranked items are always preferred over unranked items
- Unranked items are tied with each other (no preference)
This lets you express "I care about these top 3, but I'm indifferent to the rest."
Features
- No login required — users are identified by browser cookies
- Real-time updates — results update instantly via WebSockets
- Dark/light mode — toggle via "Light/Dark" in the menu (☰)
- Collaborative — any participant can add items; you can delete items you added
- Display names — set an optional name so other participants can see who you are
- Participant list — click the participant count to see who's in the ballot