🗳️ Open Source · Free to self-host

Your community deserves elections it can trust

VoteTerminal is a free, open-source voting platform built for nonprofits, civic organizations, HOAs, and community groups — secure, anonymous, and ready in minutes.

Get started free View on GitHub

No credit card required  ·  Free tier covers most elections  ·  Open source forever

Votes are 100% anonymous
Double voting prevented
Every voter gets a receipt
Full audit trail

Everything your election needs, nothing it doesn't

Built specifically for community organizations running real elections — not a survey tool bolted into a voting app.

🔒

True vote anonymity

Voter identity and ballot choices are stored in completely separate records with no shared ID. Even administrators cannot see how anyone voted.

Verified voters, anonymous votes

Every voter is verified by email to prevent duplicate votes — but the verification is never linked to their ballot. You get integrity without surveillance.

🗂️

Voter roll support

Upload a CSV of eligible voters and the system sends each one a personal access code. Only people on the list can vote — perfect for membership elections.

📧

Automatic email receipts

Every voter receives a confirmation email with a unique receipt ID after casting their ballot — proof their vote was recorded, with no personal data attached.

📊

Live results dashboard

Administrators see real-time turnout and tallies as votes come in. Results are calculated automatically when the election closes.

🛡️

Emergency audit trail

A password-protected audit panel lets administrators see who voted (not how) in the event of a dispute. Every access is permanently logged.

Run a secure election in four steps

From setup to results in the same day.

1

Create your election

Set the name, candidates, voting type, and the open/close window. Takes about two minutes.

2

Upload your voter roll

For invite-only elections, upload a CSV of eligible voters. The system sends each one a personal access code by email automatically.

3

Voters cast their ballots

Voters register with their email, enter their access code, review their ballot, and confirm. They receive an email receipt with a confirmation ID.

4

Results are tallied

When the election closes, results are calculated automatically. Ranked choice, majority, or plurality — all handled for you.

The right method for every decision

Choose the voting type that fits your election when you create it.

Plurality

Most votes wins

The candidate with the most votes wins, even without a majority. Ideal for simple board or officer elections.

Majority

More than 50% required

A winner must receive over 50% of votes. Used when a clear mandate is important, such as constitutional amendments.

Ranked Choice

Instant runoff

Voters rank candidates in order. If no one wins outright, the last-place candidate is eliminated and votes are redistributed until a winner emerges.

Built so no one — not even us — can see your vote

Most voting tools claim anonymity but store enough data to reconstruct who voted for what. VoteTerminal is architected differently at the database level.

Voter table
📧 Email address
✅ Has voted (yes/no)
🕐 Timestamp
🔑 Receipt ID
Identity lives here
Ballot table
🗳️ Election ID
☑️ Candidate chosen
🕐 Timestamp
🔑 Receipt ID
Choices live here

The receipt ID is a random token — it proves a ballot exists but carries no name or email. Even with full database access, it is mathematically impossible to link a specific person to a specific ballot choice.

1

You verify your identity

You enter your email. The system checks you're on the voter roll and sends a one-time access code. This confirms you're eligible — nothing more.

2

You cast your ballot

You select your candidate and confirm. Your choice is written to the ballot table with a random receipt ID. Your name is never written to that table.

3

Your voter record is updated

The voter table records that you voted (yes/no) and your receipt ID. The receipt ID is the same random token — it does not contain your ballot choice.

4

You get a receipt

You receive an email with your receipt ID. This proves your vote was counted. If you can show the receipt exists in the ballot table, your vote is verified — without revealing what you chose.

What we store

  • Your email address (for verification only)
  • That you cast a ballot (yes/no)
  • When you voted (timestamp)
  • A random receipt ID (not linked to your choice)

What we never store

  • Who you voted for — ever, anywhere
  • Any link between your identity and your ballot
  • Your name or address beyond what's needed for verification
  • Any data that would let an admin reconstruct your vote
🔒
HTTPS everywhere

All traffic is encrypted in transit with TLS. SSL certificates are issued by Let’s Encrypt and auto-renew every 60 days.

🚫
Double-vote prevention

Once your voter record shows hasVoted = true, the system rejects any further ballot submissions for that election — even if someone has your access code.

📋
Transparent audit trail

Admins can see who voted (for quorum verification) but never how. Every access to the audit panel is permanently logged with a timestamp and admin identity.

🛡️
JWT-authenticated admin access

Admin sessions use signed JSON Web Tokens with expiry. Tokens are invalidated on logout. Admin credentials are bcrypt-hashed and never stored in plaintext.

🏠
Self-hosted = your data stays yours

On the self-hosted edition, your data never leaves your server. You own the database, the encryption keys, and the infrastructure entirely.

👁️
Open source = auditable

Every line of code is public on GitHub. Any security researcher, developer, or curious voter can inspect exactly how the privacy model is implemented.

Pick the right plan for your organization

Monthly subscriptions. No per-election fees. Cancel any time.

Self-hosted

Free forever

Open source. Run it on your own server. Your data never leaves your infrastructure.

  • Full source code (MIT license)
  • Unlimited elections & voters
  • Bring your own email provider
  • Complete data ownership
  • Community support
Download & install →

Community

$19 /month

Perfect for small orgs running regular elections without managing a server.

  • 10 elections per month
  • 500 voters per election
  • Your subdomain on voterterminal.com
  • Email confirmations included
  • Custom branding & logo
  • Email support
Get started →
Enterprise

Enterprise

Custom pricing

Large orgs, state or multi-chapter associations, unlimited scale & white-label.

  • Unlimited elections & voters
  • Multi-chapter / parent org support
  • White-label (remove VoteTerminal branding)
  • Dedicated server & infrastructure
  • SLA guarantee
  • Dedicated support rep
  • Custom feature development
Book a consultation →

7-day free trial  ·  No credit card required  ·  Competitors charge per election — we don't.

Start your 7-day free trial

No credit card required. Starter and Pro plans — cancel any time.

.voterterminal.com

Already have an account? Log in

Download & install in minutes

VoteTerminal is open source and free to self-host. Runs on any Linux server — community and enterprise editions both included.

🖥️ Community Edition (direct install)

Installs directly on Ubuntu, Debian, RHEL, CentOS, Rocky Linux, AlmaLinux, or Fedora. Apache + pm2 + Let's Encrypt SSL set up automatically.

🐳 Docker Edition

Run VoteTerminal in containers with nginx and automatic SSL. Works on any OS with Docker Engine 20.10+ and Docker Compose v2.

Minimum requirements: 512 MB RAM, 2 GB disk, 1 vCPU, public IP, domain name

Large organizations deserve a custom solution

State associations, multi-chapter orgs, and large nonprofits have needs that go beyond standard plans. Let's talk.

  • Unlimited voters across unlimited elections
  • Multi-chapter support — manage sub-organizations under one umbrella
  • White-label: your domain, your branding, no VoteTerminal mention
  • Dedicated server infrastructure, not shared hosting
  • SLA with guaranteed uptime during election windows
  • Custom feature development scoped to your workflow
  • Dedicated support rep available during elections (8 AM – 5 PM Mon–Fri)

📅 We respond to all consultation requests within one business day (Mon–Fri, 8 AM – 5 PM ET).

Request a consultation

Ready to run your first election?

7-day free trial — no credit card, no setup fees.

Start free trial Download & self-host