Crowdsignal

crowdsignal.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

Polls, surveys and quizzes you can embed anywhere, with results shown live and exports when the vote closes.

Promptfree, for everyone, and the only version there is
Build me a polls and surveys tool that replaces Crowdsignal: embeddable polls with live results that survive a busy day, and honest defences against a stuffed ballot.

STACK
- Node 20+ with Fastify
- SQLite through better-sqlite3, WAL mode
- One embeddable script under 10KB gzipped, plus a hosted page for each poll
- Caddy in front

THE DATA MODEL
- polls: id, slug, question, kind, options_json, status, opens_at, closes_at, results_visibility, allow_multiple, allow_other, randomise_options, theme_json
- responses: id, poll_id, option_ids_json, other_text, voter_hash, session_id, referrer_host, country, device, bot, created_at
- surveys: id, slug, title, intro_md, thank_you_md, status, one_response_per, created_at
- questions: id, survey_id, position, kind, prompt, config_json, required, logic_json
- answers: id, response_id, question_id, value_text, value_num, value_json
- tallies: poll_id, option_id, count, updated_at — a materialised counter kept in the same transaction as the insert, because counting a million rows on every page load is the way this falls over
- Question kinds: single choice, multiple choice, rating, scale, ranking, free text, date, email

VOTING ONCE, HONESTLY
- Four levels, chosen per poll and stated on the results page: open to all, one per browser, one per address, one per verified email
- The browser level uses localStorage plus a session cookie; the address level uses a salted HMAC of the address with a per-poll salt so hashes cannot be joined across polls
- Say plainly in the interface what each level actually stops. One per address blocks the casual double vote and nothing more; anyone determined will use a phone. A tool that claims otherwise is lying to its owner
- Rate limits per address and per poll, and a burst detector that flags a poll whose votes arrive too regularly to be people
- Bots flagged, recorded, and excluded from the published tally — never dropped

LIVE RESULTS THAT DO NOT FALL OVER
- The tally is a counter row updated in the same transaction as the vote; the results endpoint reads one row per option
- Results cached in memory with a short TTL and an ETag, so a poll on the front page of somewhere costs one query a second, not one per visitor
- Live updates by polling that endpoint on a backoff, not by a socket per viewer
- Results visibility per poll: always, after voting, after closing, or never public

SURVEYS
- Multiple questions with conditional logic: show this if that answer was chosen
- Page breaks, progress indicator, partial responses saved and resumable by token
- Required questions enforced on the server as well as in the browser
- A thank-you page, optionally redirecting somewhere

EMBEDS
- An inline embed that resizes itself with a postMessage handshake, never an iframe of a fixed guessed height
- A hosted page for sharing as a link, with Open Graph tags and a generated preview image showing the question
- A static image of the current results for places that run no scripts, regenerated on a schedule
- Keyboard operable, labelled for screen readers, and usable at 320px

RESULTS AND EXPORT
- Charts drawn as inline SVG: bar for choices, a distribution for ratings, no charting library
- Cross-tabulation by any question in a survey
- Export CSV and JSON, complete, in one click, including free text
- Every export says how many responses were excluded as bot traffic and why

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, HASH_SALT, SESSION_SECRET, GEOIP_DB_PATH, ALLOWED_ORIGINS
- Migrations on boot, each once
- Nightly backup off the machine, restore script
- Health endpoint that casts and rolls back a vote

WHAT MATTERS MOST
The tally counter and the honest description of the vote defences. Build the transaction that increments the counter with the response, then load-test one poll with tens of thousands of votes. A poll that shows a wrong number under load has failed at the only thing it does.

Give me the repository, the embed script, migrations, .env.example, a seed with three polls and one branching survey, and a README with deploy steps behind Caddy.

What you lose

  • Duplicate-vote defences refined across thousands of polls
  • Live result rendering that does not fall over when a poll goes viral
  • Embeds that work in email, blogs and social posts

If you would rather not build

  • A form and a count, which is what this is
  • A GitHub Discussions poll, which is free

What it costs

read from their page 15 Aug 2026

PlanBilled monthlyBilled yearlyLast read
—$15/mo—15 Aug 2026

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Formbricks

$0

Self-hosted surveys with logic, if a poll grows into a questionnaire.

formbricks/formbricksfree · open source

LimeSurvey

$0

For when the poll needs to be a serious questionnaire.

LimeSurvey/LimeSurveyfree · open source

Why this verdict

our own opinion · changed only by a person

90/100

Verdict yes at 90. A poll is a count. Being honest that it is indicative rather than secure is the right design decision.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Crowdsignal

answered from the record above

Is Crowdsignal free?

No — the plan we track is $15 a month. Individual at around $15/month billed monthly, cheaper annually.

Can you replace Crowdsignal by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 90 out of 100, build time one session. Read what you lose before you decide.

How much does Crowdsignal cost?

$15 a month on Individual — $180 a year. Recorded 10 Aug 2026.

What do you lose by replacing Crowdsignal?

Duplicate-vote defences refined across thousands of polls; Live result rendering that does not fall over when a poll goes viral; Embeds that work in email, blogs and social posts. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Crowdsignal?

Yes: Formbricks, LimeSurvey. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 19 in Forms

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc