Code-authenticated voting
Single-use codes matched to your membership roll. No accounts, no passwords. Codes are validated before they're spent, so a failed retry never burns a voter's ballot.
RosaVote is an open-source, code-authenticated ballot system that runs on your own cloud. Results are tamper-evident, any member can check them, and the counting rules DSA actually uses are built in.
A ballot box built for the way a democratic organization actually votes: proportional slates, diversity quotas, secret delegate ballots, and results the whole membership can audit.
Single-use codes matched to your membership roll. No accounts, no passwords. Codes are validated before they're spent, so a failed retry never burns a voter's ballot.
Every voter gets a receipt and can confirm their ballot in the published hash chain, right in the browser. Trust the math, not the operator.
Ballots live in your own Google Cloud and flow to your data warehouse. Nothing is ever uploaded to a third-party election vendor.
Scottish & Meek STV, Score, STAR, Bloc STAR and STAR-PR. Comparison counts (Condorcet, SPAV and more) let you sanity-check any result.
Diversity-quota reservations, Article V timing and time zones, delegate alternates, and national + chapter-scoped admin. All out of the box.
Publishes standard .blt ballot files and a tamper-evident hash chain. Anyone can
re-run the count with the bundled verifier and get the identical result.
Ties resolve by a documented, reproducible rule you can inspect. No hidden coin flip inside a black box.
Deliver codes by email or SMS via Mailgun, Twilio or Scale to Win, with self-serve opt-out and automatic bounce/spam cross-channel resend.
Screen-reader friendly, fully keyboard-navigable, high-contrast ballots, and light/dark themes. Tested across browsers.
Open code, open ballots, open counts. From a chapter co-chair race to a national delegate election.
The membership list is loaded once. RosaVote de-duplicates it and issues a single-use code per member.
Codes go out by email or SMS through the configured provider, with opt-out handled automatically.
Voters open a clean, accessible ballot. Rank a slate, score candidates, or answer a motion.
At the deadline the ballots are tabulated by the binding method: Scottish/Meek STV, Score or STAR.
Anonymized ballots and a tamper-evident hash chain are published alongside the winners.
Members verify their receipt. Observers re-run the count in independent software and get the same result, every time.
verify.py yourself. No trust in the operator required.Diversity minimums for a delegation. Article V secret ballots. Alternates that fill the right way when a seat opens. YDSA NCC quotas. Chapter admins who see only their own race, and national admins who see the whole map. RosaVote encodes the rules your organization already fights to uphold, so the software never stands in the way of the politics.
OpaVote is a good partner to DSA. It's affordable, dependable, and a solid choice for high-stakes or contested elections, where an independent third party adds trust. RosaVote is the preferred alternative for everything else: stronger, more flexible, fully customizable, and more affordable. Nothing forces a migration. Chapters choose what fits each race.
| OpaVote | RosaVote | |
|---|---|---|
| Cost at DSA scale | ~$0.08 per voter, per election. Fine for one vote, but it multiplies across 200+ chapters. | Runs on cloud infrastructure DSA already operates. A fraction of the cost, at any scale. |
| Customization | One general-purpose ballot template. | Multi-section ballots, chapter-unique questions, randomized slates, per-section visibility. |
| DSA-specific rules | Quotas and bylaw timing handled by hand, around the tool. | Diversity quotas, Article V timing, alternates and scoped admin built in. |
| Flexibility & control | Proprietary and hosted. You work within its limits. | Open source (AGPL-3.0). Anyone can host, audit, or extend it. No vendor lock-in. |
| Data ownership | Ballots hosted by the vendor, removed about 12 weeks after the vote. | Ballots stay on infrastructure the organization controls, retained on its own terms. |
| Voter verification | Published results and a downloadable ballot file. | Per-voter receipts, a public hash chain, and an in-browser verifier. |
| Counting methods | Scottish STV, Borda, IRV, Condorcet. A solid, proven set. | All of those plus Meek STV and Score/STAR/STAR-PR, open and reproducible. |
| Support & independence | Commercial support and a neutral third party. A real plus for high-stakes races. | Maintained by DSA members and open to contributions from the whole movement. |
OpaVote is a good partner, and nothing pushes a chapter off it. Some will keep it for high-stakes races. RosaVote is the better default for most, and it's here whenever a chapter is ready. See the full side-by-side ↗
For a single chapter election OpaVote costs about $10 or $20, and at that size this comparison barely matters. The gap shows up across 200+ chapters, or at national scale. Move the sliders and see for yourself. Every rate below is editable and sourced.
Defaults: OpaVote is free up to 25 voters, then $10 per 125 voters (~$0.08/voter), a flat rate that holds at high volume (opavote.com/pricing). RosaVote figures reflect Google Cloud Run (scales to zero between elections) plus typical bulk email/SMS sending rates; your actual provider rates may differ.
The honest caveat: OpaVote's fee includes hosting and support, and for a one-off vote that convenience is worth something. That's why some chapters may still choose it for a high-stakes race. But at DSA's scale the savings are real and they compound. The trade is that DSA runs the cloud itself, and SMS or postcards cost extra in either tool.
Some of DSA's most important decisions happen live, in a room. That's OpenSlides. DSA uses it to run national convention and recommends it for live meeting votes. RosaVote handles the other half: asynchronous ballots members cast on their own time. The two barely overlap.
The floor process itself: agenda, motions and amendments, speakers list, quorum, the projector, and live votes while delegates are present. Open source, and the system DSA uses to run its national convention.
Votes that happen before anyone's in the room: members ranking candidates on their phones over days, with proportional counts and results the whole membership can verify.
Ranked-choice STV elections aren't what OpenSlides is built for today. That's RosaVote's lane. Running a live convention floor isn't. DSA uses each for what it does best, and keeps recommending OpenSlides for live meeting votes.
Election software should be the last thing to oversell itself. Here is the honest state of the project.
The full election lifecycle is implemented: ballots, codes, Scottish and Meek STV, Score/STAR/STAR-PR, quotas, alternates, adjudication, publication and verification. It's covered by 284 automated checks and a 40-election regression suite built from published contest results.
DSA publishes the ballot file for its NPC elections so anyone can recount them. Run against the published 2025 NPC At-Large ballots, this tabulator returns the certified winner set, candidate for candidate. Those files are public record and contain rankings only, never voter identities.
No binding election has been run on RosaVote. Every election on this instance is a demo or a replay of an already-certified count. There is also no self-service signup, and no independent security audit has been done.
Want to run a real election on it? That's done hands-on right now. Write to support@rosavote.org and it gets set up with you. The full plan, including everything still missing, is in the public roadmap ↗
Try the demo, read every line of the count, or talk to us about piloting a real election. Open from the roll to the recount.