How to add a survey to your website without a backend
Build a multi-page survey, then share it by link or drop it into any page with one script tag. No server, no Typeform subscription, and the responses stay yours.
You want to ask your visitors something — rate the onboarding, vote on a roadmap, collect post-event feedback — and the moment you start looking, you're funneled toward a monthly subscription, a builder that owns your design, and a survey that lives on someone else's domain. For a handful of questions.
You don't need a survey platform to run a survey. You need a place to collect structured answers and two ways to hand the survey out.
This is a practical guide to standing up a real, multi-page survey — welcome screen, paged questions, ratings, the works — and getting it in front of people either as a shareable link or as an inline embed on your own site. No backend, no SDK, and the responses stay in a dashboard you control.
The survey tax nobody mentions
Hosted survey tools are genuinely good at the building part. The cost shows up everywhere else:
- Price per question, not per value. The free tier caps responses or hides logic; the paid tier is billed like a CRM. You're renting a form.
- Your survey, their domain. The link is
their-tool.com/u/yourname. The embed drags in their branding. Visitors hand data to a company they've never heard of. - Your responses, their export button. Getting the raw data out cleanly is reliably the feature behind the highest paywall.
For most surveys, the requirements are short enough that the whole category is overkill.
What “a survey” actually needs
- A few question types — single choice, multiple choice, a rating scale, free text.
- More than one page, so a long survey doesn’t become one intimidating scroll.
- A way to stop the same person answering five times.
- Results you can read at a glance and export when you need the raw rows.
- Two ways to distribute it: a link to send, and an embed for your own pages.
- No server to run, and no monthly bill that scales with curiosity.
That is a much smaller problem than “adopt a survey platform.” A form backend that understands surveys covers all of it. SaveForm does; the survey docs walk the whole thing end to end. Here's the shape of it.
Build once, share two ways
You build the survey once in a dashboard — a welcome screen, then one or more pages of questions. After that, distribution is a choice, not a rebuild. The exact same survey is reachable as a hosted page and as an inline embed, and both funnel responses to the same place.
A standalone hosted page. Send it in an email, pin it in Slack, print it as a QR code on a conference badge.
saveform.io/survey/8b5c4b0eOne script tag injects the survey into your own page as an iframe and auto-resizes it to fit.
<script src="…/embed.js" data-survey="8b5c…">The link needs no code at all — copy it and send. The embed is a single tag you paste wherever the survey should appear:
<script src="https://saveform.io/embed.js" data-survey="YOUR_SURVEY_ID" async ></script>
The script figures out the rest: it injects an iframe of the survey, listens for a height message, and resizes so there are no nested scrollbars. Because it's a plain <script> plus an iframe, it works on a static HTML page, WordPress, or any SPA — covered in depth in the embedding guide.
Multi-page, not one endless scroll
A survey is not a contact form with extra fields. The thing that makes people finish is structure: an optional welcome screen that sets expectations, then questions grouped onto pages with a Back/Next pager that only advances once the required questions on the current page are answered.
The question types cover the vast majority of real surveys:
- Single choice — pick one (charted as a bar).
- Multiple choice — pick any number; each option counted on its own.
- Rating — a 1–N scale you can anchor with labels, e.g.
1 = Not at all,5 = Loved it. - Email — validated, and doubles as the identity field for one-response-per-email surveys.
- Short text — free responses, read verbatim, never charted.
One response per person (and the honest limits)
Every survey enforces one of two de-duplication rules. The right choice depends on whether you need to know who answered:
- Per browser. Anonymous. A cookie marks the browser as done. Perfect for a quick pulse check where identity doesn't matter.
- Per email. The welcome screen collects a required address and each one answers once — checked up front, so a repeat visitor is told they've already responded before filling anything out, with a database-level unique index as the backstop.
The results are the whole point
A contact form is done when the message lands. A survey only starts paying off once answers aggregate. So the responses don't just pile up as rows — they roll into live charts the moment they arrive.
- Choice and rating questions become bar and distribution charts, two per row, each exportable to PNG or SVG for a deck.
- Every individual response is listed and downloadable as a CSV — one row per response, a column per question.
- You choose who sees the aggregate: private (just you), after-vote (the classic poll reveal), or public.
Charts render in the browser, so for PNG/SVG export the response data never leaves your machine.
Where the data lives
This is the part that separates a form backend from a survey SaaS: survey responses are stored as ordinary submissions, in the same dashboard as the rest of your form data. That means the things you already rely on — search, CSV/JSON export, retention rules — apply unchanged. It also means there's no second silo to babysit and no export paywall between you and your own answers. (For the bigger picture on where form data should live, see where form submissions actually go.)
What it costs
Surveys reuse the same meters as forms rather than inventing new ones, which keeps the pricing legible:
Free surveys show a small “Powered by SaveForm” badge and ship with two themes; any paid plan unlocks the premium themes and removes the badge. Your own logo sits at the top of the survey on every plan, free included. The full breakdown is in the survey docs and on pricing.
The bar for “run a survey” should be a link you can send in the next five minutes — not a subscription you'll forget to cancel.
Run your first survey free
Build a multi-page survey, share it by link or embed it with one tag, and watch the results chart themselves. Start free — no credit card required.