Polls that live in your README.

One line of markdown renders a live SVG badge. One iframe accepts votes inline. Both stay in sync with the same poll.

A live poll, taking real votes

Three ways to embed one poll

Every surface reads from the same poll, so results agree wherever you place them.

README badge

GitHub renders the SVG and links it back to the poll.

[![Poll](API/api/v1/badges/demo-frameworks.svg)](SITE/polls/demo-frameworks)

Interactive embed

An iframe that accepts votes inline, about 7 KB gzipped.

<iframe src="SITE/embed?id=demo-frameworks"
        width="100%" height="380"
        style="border:0" loading="lazy"></iframe>

Plain image

For Markdown that strips iframes, such as Hugo or Dev.to.

![Poll](API/api/v1/badges/demo-frameworks.png)

What the platform guarantees

Privacy and abuse handling are decided on the server, not in the widget.

Voting
Anonymous
No account needed to cast a vote.
Duplicate control
Device token
An httpOnly cookie issued server-side.
IP handling
Salted SHA-256
Raw addresses are never stored.
Trackers
None
No analytics scripts ship with an embed.
Result masking
Server-side
Hidden counts never reach the browser.
Licence
Apache 2.0
Self-host the entire stack.

From question to results

  1. Create

    Sign in with GitHub, write a question and up to ten options. Choose single-choice, multi-select or quiz mode.

  2. Embed

    Copy one line for a badge or an iframe. The snippet carries your poll id and needs no build step.

  3. Measure

    Watch votes arrive in the dashboard, split by option, referrer and day. Export CSV or JSON.

Everything here runs on a stack you can host yourself: FastAPI, PocketBase and a static Astro front end.