Reusable polls and voting for Statamic: answers from any collection or plain text, one vote per visitor, static-cache safe.

Polls Main Screenshot

Polls lets editors run votes from the control panel, using the content they already have.

Answers from anywhere. Pick entries by hand, pull every entry of a collection that matches some conditions (e.g. "all active players"), or write free-text answers with an image.

Fair votes. One vote per visitor, with a signed cookie for anonymous voters or any Laravel guard for logged-in ones. A honeypot, a bot filter, rate limits and a per-IP cap applied atomically, plus optional Cloudflare Turnstile.

Results on your terms. Hidden until voting closes (or shown after voting, or always), then frozen. Options freeze when voting opens, so content changes never break a running poll. While an open poll has no votes yet, editors can still edit its options.

Built for static caching. The markup is the same for every visitor. A small script fetches each visitor's state only when needed, with no flash of the form for people who already voted.

Flat-file or database. Store votes in files (works without a database) or in a table for busy sites, and switch drivers at any time.

Control panel. A searchable listing with status, group and site filters, live counts for your team, CSV export, and one-click voiding of a scripted burst from a single address.

Monthly polls in one command. Duplicate a poll to next month with its translations retitled per language.

Translations: English and Spanish.