How it works

From a blank ballot to a finished election

No installs, no plugins, nothing for your voters to sign up for. Four stages, start to finish.

Building a ballot

1. Build your ballot

From your dashboard, start a new election and add one or more questions. Each question can be single-choice or multi-choice, and every option can carry its own photo — useful for candidates, proposals, or products. Nothing is locked yet; you can edit freely while the election is still a draft.

Importing a voter list

2. Add your voters

Paste email addresses directly or upload a CSV. The importer understands real-world exports: it skips header rows, handles two-column "Name, Email" files, dedupes case-insensitively, and reports exactly how many rows were duplicates or unreadable — with samples — instead of a single opaque count.

Sending voting links

3. Preview, confirm, and launch

Before anything goes out, "Preview as voter" renders the exact page your voters will see — your organization name, the questions, the options, the images. Launching requires checking a box confirming you understand the poll can't be edited once it's live, since questions, options, and the voter list are all locked the moment it goes live. The instant you launch, every invitation is emailed with its own unique, single-use voting link — not queued for later.

Results coming in

4. Results come in, and it closes itself

As voters use their links, results tally live per question. Every read and every vote independently checks the server's own clock against your deadline, so the poll behaves as closed the instant it's due — no cron job required for correctness, and no voter can affect this by changing their own device's clock. Download a branded PDF or a raw CSV report whenever you like; both are built from aggregate counts only, so a voter's email address can never appear in one.

See it for yourself

Creating an account and previewing a ballot takes about the same time as reading this page.