SAVEFORM
All posts
Guide

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.

7 min readsurveys·no-backend·embed

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:

For most surveys, the requirements are short enough that the whole category is overkill.

What “a survey” actually needs

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.

Two ways to ship the same survey
Share a link

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/8b5c4b0e
Embed inline

One 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:

HTMLanywhere in your HTML
<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:

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:

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.

Rate the workshop · 312 responses
Loved it62%
It was fine28%
Not for me10%

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:

= 1 form
A survey counts toward your form allowance
= 1 submission
Each response counts like a form submission
$0
Free plan runs a real survey, badge and all

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.

How to add a survey to your website without a backend — SaveForm.io | SaveForm.io