Two honest, workable ways to run a vote: manual on-the-spot tallying by a host, with automatic percentages and a bar chart; or generate a share link so people can each vote on their own device, then send back a "reply code" for you to manually aggregate. This tool has no backend server, so it will not pretend it can do real-time multi-device vote syncing β every mode below clearly explains how it actually works and what its limits are.
Letting 30 people vote independently on 30 different phones, with everyone seeing a live, merged tally of everyone's choices, technically requires a server that every device can reach β one that receives each vote as it comes in, totals it, and broadcasts the latest result back to everyone's screen. Like every other tool on this site, this is a static, purely front-end web page with no server and no database β every browser tab that opens it is a completely independent, isolated instance. Clicking an option on your own phone has no channel through which it could automatically show up on anyone else's screen. Rather than pretending this is possible and letting people believe results sync automatically, this tool is upfront about the limitation and offers two genuinely useful workarounds within that constraint.
If the vote happens in the same physical space (a meeting room, a classroom, a dinner party), the simplest honest approach is to go manual: the host counts raised hands by eye, or listens to people call out their choice, and clicks the card themselves. This tool adds one thing on top of a plain counter β it computes each option's percentage live and draws a bar chart, so everyone can see the trend at a glance. That's especially useful when people are shouting out answers and you want to know which option is ahead without manually calculating percentages on paper.
When voters are spread across different locations and can't gather in one room to vote out loud, this tool uses a "URL parameters + reply code" combination to build an honest, workable alternative: the poll creator encodes the question and options into a share link (using the browser's built-in btoa to turn a JSON object into a text string tucked into a URL parameter β the same technique this site's lucky-draw tool uses to carry a name list in a link). When someone opens the link and picks an option, their browser encodes "which option they picked" into a short "reply code," shown on screen. This code isn't automatically sent anywhere β it's just a piece of text that the voter has to copy and manually send back through whatever channel they're already using (a message, a group chat comment). The creator then pastes all the codes they receive into the tool's "aggregate" field, where the browser decodes and tallies them one by one. Not a single byte of this ever passes through a server β the whole thing relies on the messaging channel people are already using as the "transport layer," which is the most honest way a purely front-end tool can achieve "distributed voting" without a backend.
To be honest, the reply-code mechanism has a few limits. First, someone could in theory forward the same link to someone else to vote twice, or vote multiple times from different browsers β the tool has no way to tell "is this the same person" across devices, and can only remember "this browser already voted on this poll" via localStorage on a single device; switching devices or clearing browser data resets that memory. Second, the reply code is just text turned into base64 β it is not encryption, and anyone who understands the format can decode exactly what was chosen; its purpose is convenient copy-paste, not concealment from a determined snoop. For everyday dinner polls and small informal surveys these limits are usually harmless, but for a formal vote with strict anti-ballot-stuffing or high-confidentiality requirements (e.g. a major company decision), use a formal online voting system with account verification and server-side duplicate prevention instead.
No. This tool has no backend server, so it can't sync choices across devices in real time. "Share a Vote Link" mode works by having each voter get a "reply code" after voting, which they need to manually send back to you to paste into the aggregation field β it's an honest, workable alternative, but it does require a bit of manual coordination and isn't fully automatic.
The core counting mechanism is similar (the host clicks a card to add a tally), but this poll tool additionally computes live percentages and a bar chart, and lets you enter a poll topic to label what's being voted on. If you only need a simple running count with no percentages, the plain "Tally Counter" tool works too.
Not completely. The tool can only remember "already voted" on the same device's same browser via localStorage, so reopening the same link on the same device shows a "you already voted" notice β but if someone switches devices, uses a private/incognito window, or simply forwards the link to someone else to vote again, the tool has no way to recognize it's the same person. That's an inherent limitation of a purely front-end tool with no account system.
It's not encryption, just the browser's built-in base64 encoding turning "which option you picked" into a text string that's easy to copy and paste, instead of typing out "I picked the second one." Anyone who knows the format can decode it. It's meant for convenience, not confidentiality or preventing prying eyes β don't use this mode for votes involving sensitive choices that need to stay confidential.
No. All encoding, decoding, and tallying happens in your browser via JavaScript β there's no code on this page that sends any data out. Share links and reply codes are things you actively copy and send through a channel of your own choosing (a message, a group chat); the tool itself never uploads or stores anything on your behalf, and refreshing the page clears whatever is currently on screen.