Free tool

Feedback form generator

Collect ratings and comments from your users with a feedback form that works anywhere. Configure the rating scale, style it, and copy the code.

Fields

Submission

Where submissions go. Paste your form ID to make the code real — or keep the placeholder while you experiment.

On submit

Spam & privacy

Design

Styling

Adds Tailwind utility classes. Your project needs Tailwind installed.

Live preview

Who answers decides what you learn

Feedback forms have a selection problem that no other form here has: the delighted and the furious reply, and the quiet majority in the middle does not. Every design choice either widens that gap or narrows it.

A rating
Gives you something countable, so you can tell whether a change moved anything. One to five, or thumbs; the scale matters less than keeping it fixed over time.
What prompted this
The open box is where the actual information lives. The rating tells you that something changed, this tells you what.
Email — optional, and say so
Mark it optional in the label, not just in the markup. Whether people believe it is optional changes what they write.

The mistake to avoid: Requiring an email address

It is the fastest way to convert honest criticism into polite nothing. People moderate themselves the moment they are identifiable, so a required email buys you the ability to follow up at the cost of the feedback being worth following up on. Ask, do not require.

Read the text, count the ratings, and resist averaging them into a single number for a dashboard. A mean of 3.5 made of fives and twos is a different business problem from one made entirely of threes.

How it works

  1. Choose a template and fields. Pick a template, then add, remove, or reorder fields and mark the required ones. Add step breaks to turn a long form into a multi-step form.
  2. Style it. Pick CSS, Tailwind, or unstyled output and tune the theme: accent color, light or dark, rounded corners.
  3. Copy your framework's code. Switch to HTML, React, Vue, Svelte, Astro, or a fetch() version and copy, download, or open it in CodePen.
  4. Connect an endpoint. Create a free ShipMyForm form to get a real endpoint, then drop your form ID in so submissions actually arrive.

Want the background? Read what a form backend is and how to stop form spam without reCAPTCHA. Want the submissions in your inbox? See how to send an HTML form to email. Already have a Google Form? Convert it to HTML. Got a form that submits but delivers nothing? Check its HTML.

Frequently asked questions

Should a feedback form be anonymous?
Make the email optional and say so in the label. People moderate themselves the moment they are identifiable, so requiring an address buys the ability to follow up at the cost of the feedback being worth following up on. Those who want a reply will leave one.
Is a rating scale better than an open text box?
They do different jobs and the form wants both. The rating is countable, so it tells you whether something changed over time; the open box tells you what changed. A rating alone produces a number nobody can act on, and text alone cannot be compared month to month.
How do I get more than the extremes to reply?
Keep it to two questions, ask at a moment that relates to what you are asking about rather than in a monthly email, and do not require identification. Feedback forms over-collect from the delighted and the furious by default; every bit of friction you remove pulls in more of the middle.
What should I do with the responses?
Read the text and count the ratings, but resist averaging them into one dashboard number. A 3.5 made of fives and twos is a completely different situation from a 3.5 made of threes, and the average hides exactly the signal you needed.