[{"data":1,"prerenderedAt":184},["ShallowReactive",2],{"blog-best-free-survey-tools":3},{"blogData":4,"relatedArticles":102},{"id":5,"title":6,"description":7,"metaTitle":6,"metaDescription":7,"keywords":8,"author":9,"authorProfile":10,"coverImgAlt":11,"featured":12,"slug":13,"body":14,"createdAt":15,"updatedAt":16,"publishedAt":17,"coverImg":18,"metaImage":19,"schema":20,"coverImgWidth":98,"coverImgHeight":99,"readingStats":100},1784,"Best Free Survey Tools 2026: 10 Tested Picks Compared","Compared the 10 best free survey tools for 2026, with real response caps, logic limits, and exports. SurveyMonkey, Typeform, Qualtrics, Tally, and more.",null,"Harsh Shah","https://linkedin.com/in/harshshahseo","Cover image: best free survey tools",false,"best-free-survey-tools","\u003Cstyle>\n/* batch-1 blog normalisation */\n.fmstr-blog-lead {\n  font-size: 17px !important;\n  line-height: 1.65 !important;\n  color: #475467 !important;\n  font-weight: 400 !important;\n  margin: 0 0 16px !important;\n}\n.fmstr-blog-lead a { color: #6941c6 !important; font-weight: 500; }\n.fmstr-blog-lead a:hover { text-decoration: underline !important; }\n.fmstr-blog-lead strong { color: #101828; font-weight: 700; }\nsection[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n  padding-top: 28px !important;\n  padding-bottom: 28px !important;\n}\n@media (max-width: 540px) {\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-top: 24px !important;\n    padding-bottom: 24px !important;\n  }\n}\n\u003C/style>\n\n\u003Cstyle id=\"fmstr-blog-mobile-fullwidth-v3\">\n@media (max-width: 760px) {\n  .art-section { padding-left: 12px !important; padding-right: 12px !important; }\n}\n@media (max-width: 540px) {\n  .art-section { padding-left: 6px !important; padding-right: 6px !important; padding-top: 24px !important; }\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    overflow-x: hidden !important; box-sizing: border-box !important;\n  }\n  section[class^=\"fmstr-cmp-\"] *, section[class^=\"fmstr-cmp-\"] *::before, section[class^=\"fmstr-cmp-\"] *::after { box-sizing: border-box !important; }\n  section[class^=\"fmstr-cmp-\"] > *, section[class^=\"fmstr-cmp-\"] > * > * { min-width: 0 !important; }\n  section[class^=\"fmstr-cmp-\"] [class*=\"__container\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    max-width: 100% !important; width: 100% !important;\n  }\n  section[class^=\"fmstr-cmp-\"] [class*=\"__card\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__step\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__panel\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tool\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__verdict\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__row\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__fix\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__callout\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__quote\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tldr\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__answer\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__faq\"],\n  section[class^=\"fmstr-cmp-\"] details {\n    padding-left: 14px !important; padding-right: 14px !important;\n    margin-left: 0 !important; margin-right: 0 !important;\n  }\n  section[class^=\"fmstr-cmp-\"] p, section[class^=\"fmstr-cmp-\"] li { font-size: 15px !important; line-height: 1.6 !important; }\n  section[class^=\"fmstr-cmp-\"] h2 { font-size: 22px !important; line-height: 1.22 !important; }\n  section[class^=\"fmstr-cmp-\"] h3 { font-size: 18px !important; line-height: 1.3 !important; }\n  section[class^=\"fmstr-cmp-\"] h4 { font-size: 16px !important; line-height: 1.35 !important; }\n  section[class^=\"fmstr-cmp-\"] table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100% !important; }\n  section[class^=\"fmstr-cmp-\"] img, section[class^=\"fmstr-cmp-\"] iframe, section[class^=\"fmstr-cmp-\"] video { max-width: 100% !important; height: auto !important; }\n  section[class^=\"fmstr-cmp-\"] pre, section[class^=\"fmstr-cmp-\"] code {\n    white-space: pre-wrap !important; overflow-wrap: anywhere !important; word-break: break-word !important;\n  }\n  section[class^=\"fmstr-cmp-\"] pre { overflow-x: auto; }\n  .fmstr-blog-lead { font-size: 16.5px !important; }\n}\n\u003C/style>\n\n\u003Cstyle>\n/* new10 blog normalisation */\n.fmstr-blog-lead {\n  font-size: 17px !important;\n  line-height: 1.65 !important;\n  color: #475467 !important;\n  font-weight: 400 !important;\n  margin: 0 0 16px !important;\n}\n.fmstr-blog-lead a { color: #6941c6 !important; font-weight: 500; }\n.fmstr-blog-lead a:hover { text-decoration: underline !important; }\n.fmstr-blog-lead strong { color: #101828; font-weight: 700; }\nsection[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n  padding-top: 28px !important;\n  padding-bottom: 28px !important;\n}\n@media (max-width: 540px) {\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-top: 24px !important;\n    padding-bottom: 24px !important;\n  }\n}\n\u003C/style>\n\n\n\u003Cp class=\"fmstr-blog-lead\">Most \"free\" survey tools stop being free the moment your survey starts working. The free plan caps at 25 responses, the export button is locked behind Pro, and the branding stays on every page you send out.\u003C/p>\n\n\u003Cp class=\"fmstr-blog-lead\">The list below ignores the marketing pages and looks at what each tool actually lets you do without paying, who it suits, and where it breaks.\u003C/p>\n\n\u003Cp class=\"fmstr-blog-lead\">We picked tools built specifically for surveys, not generic form builders dressed up as survey software. If you are running an NPS quarterly, a customer churn study, an academic questionnaire, or an internal pulse, one of the ten below will fit.\u003C/p>\n\n\u003Cp class=\"fmstr-blog-lead\">We have flagged the response caps, branching limits, export options, and the moment each tool forces an upgrade so you do not pick the one that costs you a week of rework.\u003C/p>\n\n\u003Cstyle>\n.fmstr-cmp-bfst-tldr a { text-decoration: none !important; color: #6941c6 !important; font-weight: 500; }\n.fmstr-cmp-bfst-tldr {\n--c-card: #ffffff;\n--c-tint: #f7f3ff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 28px 0 40px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-tldr *, .fmstr-cmp-bfst-tldr *::before, .fmstr-cmp-bfst-tldr *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-tldr__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-tldr__head { margin: 0 0 20px; }\n.fmstr-cmp-bfst-tldr__label {\nfont-size: 12px; font-weight: 700; letter-spacing: 0.08em;\ntext-transform: uppercase; color: var(--c-violet-700) !important;\ndisplay: inline-flex; align-items: center; gap: 8px; margin: 0 0 8px;\n}\n.fmstr-cmp-bfst-tldr__label::before {\ncontent: \"\"; width: 8px; height: 8px; border-radius: 9999px;\nbackground: var(--c-violet-500); display: inline-block;\n}\n.fmstr-cmp-bfst-tldr__h2 {\nfont-size: clamp(22px, 2.6vw, 28px) !important;\nfont-weight: 700 !important;\nline-height: 1.2 !important;\nletter-spacing: -.02em !important;\nmargin: 0 !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-bfst-tldr__grid {\ndisplay: grid;\ngrid-template-columns: repeat(3, 1fr);\ngap: 16px;\n}\n.fmstr-cmp-bfst-tldr__card {\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 14px;\npadding: 22px 24px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 10px;\nmin-width: 0;\n}\n.fmstr-cmp-bfst-tldr__chip {\ndisplay: inline-block; align-self: flex-start;\nfont-size: 11px; font-weight: 700; letter-spacing: 0.06em;\ntext-transform: uppercase;\nbackground: var(--c-violet-600); color: #fff !important;\npadding: 3px 10px; border-radius: 9999px;\n}\n.fmstr-cmp-bfst-tldr__name {\nfont-size: 18px; font-weight: 700;\ncolor: var(--c-fg-1); margin: 0; line-height: 1.25;\n}\n.fmstr-cmp-bfst-tldr__body {\nfont-size: 14.5px; line-height: 1.6;\ncolor: var(--c-fg-2); margin: 0;\n}\n.fmstr-cmp-bfst-tldr__body strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 880px) { .fmstr-cmp-bfst-tldr__grid { grid-template-columns: 1fr; gap: 14px; } }\n@media (max-width: 540px) {\n.fmstr-cmp-bfst-tldr { padding: 20px 0 28px; }\n.fmstr-cmp-bfst-tldr__card { padding: 18px 20px; }\n.fmstr-cmp-bfst-tldr__name { font-size: 16.5px; }\n.fmstr-cmp-bfst-tldr__body { font-size: 14px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-tldr\" aria-labelledby=\"fmstr-cmp-bfst-tldr-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-tldr__container\">\n\u003Cdiv class=\"fmstr-cmp-bfst-tldr__head\">\n\u003Cp class=\"fmstr-cmp-bfst-tldr__label\">Quick answer\u003C/p>\n\u003Ch2 class=\"fmstr-cmp-bfst-tldr__h2\" id=\"fmstr-cmp-bfst-tldr-h2\">Three free survey tools cover almost every case\u003C/h2>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-bfst-tldr__grid\">\n\n\u003Cdiv class=\"fmstr-cmp-bfst-tldr__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-tldr__chip\">Internal &amp; unlimited\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-tldr__name\">Google Forms\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-tldr__body\">\u003Cstrong>Best for:\u003C/strong> anything internal, free, or unlimited where you analyze in Sheets. No response cap, native Sheets sync, no vendor logo.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-tldr__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-tldr__chip\">Academic research\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-tldr__name\">Qualtrics XM Free\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-tldr__body\">\u003Cstrong>Best for:\u003C/strong> research with real logic and a respectable cap. 500 responses, skip/display/branch logic, SPSS export, no expiration.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-tldr__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-tldr__chip\">Indie &amp; small teams\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-tldr__name\">Tally\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-tldr__body\">\u003Cstrong>Best for:\u003C/strong> indie creators and small teams who want unlimited responses, conditional logic, and a clean design without paying.\u003C/p>\n\u003C/div>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-bfst-crit a { text-decoration: none !important; color: #6941c6 !important; font-weight: 500; }\n.fmstr-cmp-bfst-crit {\n--c-card: #ffffff;\n--c-tint: #f7f3ff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 40px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-crit *, .fmstr-cmp-bfst-crit *::before, .fmstr-cmp-bfst-crit *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-crit__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-crit__head { margin: 0 0 24px; }\n.fmstr-cmp-bfst-crit__h2 {\nfont-size: clamp(24px, 2.8vw, 32px) !important;\nfont-weight: 700 !important;\nline-height: 1.2 !important;\nletter-spacing: -.02em !important;\nmargin: 0 !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-bfst-crit__intro {\nfont-size: 16px !important;\nline-height: 1.6 !important;\ncolor: var(--c-fg-3);\nmargin: 10px 0 0 !important;\n}\n.fmstr-cmp-bfst-crit__list {\ndisplay: grid;\ngrid-template-columns: repeat(2, 1fr);\ngap: 14px;\nlist-style: none;\npadding: 0; margin: 0;\n}\n.fmstr-cmp-bfst-crit__item {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 12px;\npadding: 18px 20px;\ndisplay: flex;\ngap: 14px;\nalign-items: flex-start;\nmin-width: 0;\nbox-shadow: var(--c-shadow);\n}\n.fmstr-cmp-bfst-crit__check {\nwidth: 28px; height: 28px;\nflex-shrink: 0;\ndisplay: grid; place-items: center;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\ncolor: var(--c-violet-700);\nborder-radius: 8px;\nfont-weight: 800; font-size: 14px;\n}\n.fmstr-cmp-bfst-crit__body { min-width: 0; }\n.fmstr-cmp-bfst-crit__title {\nfont-size: 15.5px; font-weight: 700;\ncolor: var(--c-fg-1); margin: 0 0 4px;\nline-height: 1.3;\n}\n.fmstr-cmp-bfst-crit__desc {\nfont-size: 14.5px; line-height: 1.55;\ncolor: var(--c-fg-2); margin: 0;\n}\n\n@media (max-width: 760px) {\n.fmstr-cmp-bfst-crit__list { grid-template-columns: 1fr; }\n}\n@media (max-width: 540px) {\n.fmstr-cmp-bfst-crit { padding: 32px 0; }\n.fmstr-cmp-bfst-crit__item { padding: 16px 16px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-crit\" aria-labelledby=\"fmstr-cmp-bfst-crit-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__container\">\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__head\">\n\u003Ch2 class=\"fmstr-cmp-bfst-crit__h2\" id=\"fmstr-cmp-bfst-crit-h2\">What we evaluated\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-crit__intro\">Six criteria. Every tool in the list is scored against the same checklist.\u003C/p>\n\u003C/div>\n\u003Cul class=\"fmstr-cmp-bfst-crit__list\">\n\n\u003Cli class=\"fmstr-cmp-bfst-crit__item\">\n\u003Cspan class=\"fmstr-cmp-bfst-crit__check\">1\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__body\">\n\u003Cp class=\"fmstr-cmp-bfst-crit__title\">Free response cap per month or per survey\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-crit__desc\">The number that decides whether the tool survives past your first send.\u003C/p>\n\u003C/div>\n\u003C/li>\n\n\u003Cli class=\"fmstr-cmp-bfst-crit__item\">\n\u003Cspan class=\"fmstr-cmp-bfst-crit__check\">2\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__body\">\n\u003Cp class=\"fmstr-cmp-bfst-crit__title\">Question types and survey logic\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-crit__desc\">Skip logic, conditional branching, multi-page, matrix questions, NPS scale.\u003C/p>\n\u003C/div>\n\u003C/li>\n\n\u003Cli class=\"fmstr-cmp-bfst-crit__item\">\n\u003Cspan class=\"fmstr-cmp-bfst-crit__check\">3\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__body\">\n\u003Cp class=\"fmstr-cmp-bfst-crit__title\">Analytics depth on the free plan\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-crit__desc\">Cross-tabulation, sentiment, filters, real-time dashboards, or just CSV.\u003C/p>\n\u003C/div>\n\u003C/li>\n\n\u003Cli class=\"fmstr-cmp-bfst-crit__item\">\n\u003Cspan class=\"fmstr-cmp-bfst-crit__check\">4\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__body\">\n\u003Cp class=\"fmstr-cmp-bfst-crit__title\">Export options\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-crit__desc\">CSV, Excel, SPSS, Google Sheets sync, PDF reports.\u003C/p>\n\u003C/div>\n\u003C/li>\n\n\u003Cli class=\"fmstr-cmp-bfst-crit__item\">\n\u003Cspan class=\"fmstr-cmp-bfst-crit__check\">5\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__body\">\n\u003Cp class=\"fmstr-cmp-bfst-crit__title\">Mobile completion experience\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-crit__desc\">Single-question-per-screen, responsive layouts, offline collection.\u003C/p>\n\u003C/div>\n\u003C/li>\n\n\u003Cli class=\"fmstr-cmp-bfst-crit__item\">\n\u003Cspan class=\"fmstr-cmp-bfst-crit__check\">6\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-bfst-crit__body\">\n\u003Cp class=\"fmstr-cmp-bfst-crit__title\">Branding on the free plan\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-crit__desc\">Whether the vendor logo stays on every page and email.\u003C/p>\n\u003C/div>\n\u003C/li>\n\n\u003C/ul>\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-bfst-body a { text-decoration: none !important; color: #6941c6 !important; font-weight: 500; }\n.fmstr-cmp-bfst-body {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 24px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-body *, .fmstr-cmp-bfst-body *::before, .fmstr-cmp-bfst-body *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-body__container { max-width: 1200px; margin: 0 auto; padding: 0 16px; min-width: 0; }\n.fmstr-cmp-bfst-body__intro {\nfont-size: 16px !important; line-height: 1.65 !important;\ncolor: var(--c-fg-2); margin: 0 0 24px !important;\n}\n.fmstr-cmp-bfst-body__tool {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 18px;\npadding: 30px 32px;\nmargin: 0 0 24px;\nbox-shadow: var(--c-shadow);\nmin-width: 0;\n}\n.fmstr-cmp-bfst-body__tool.is-featured {\nborder-color: var(--c-edge);\nbackground: linear-gradient(0deg, #fbfaff 0%, var(--c-card) 100%);\n}\n.fmstr-cmp-bfst-body__rank {\ndisplay: inline-flex; align-items: center; gap: 10px;\nmargin: 0 0 10px;\n}\n.fmstr-cmp-bfst-body__rank-num {\nwidth: 36px; height: 36px;\ndisplay: grid; place-items: center;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\ncolor: var(--c-violet-700);\nborder-radius: 10px;\nfont-weight: 800; font-size: 16px;\n}\n.fmstr-cmp-bfst-body__rank-badge {\nfont-size: 11px; font-weight: 700; letter-spacing: 0.06em;\ntext-transform: uppercase;\nbackground: var(--c-violet-600); color: #fff;\npadding: 4px 10px; border-radius: 9999px;\n}\n.fmstr-cmp-bfst-body__h2 {\nfont-size: clamp(22px, 2.4vw, 28px) !important;\nfont-weight: 700 !important;\nline-height: 1.25 !important;\nletter-spacing: -.02em !important;\nmargin: 0 0 8px !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-bfst-body__tagline {\nfont-size: 15px !important; line-height: 1.6 !important;\ncolor: var(--c-fg-2);\nmargin: 0 0 18px !important;\n}\n.fmstr-cmp-bfst-body__specs {\ndisplay: grid;\ngrid-template-columns: 1fr 1fr;\ngap: 12px;\nmargin: 0 0 16px;\nlist-style: none;\npadding: 0;\n}\n.fmstr-cmp-bfst-body__spec {\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\nborder-radius: 10px;\npadding: 12px 14px;\nmin-width: 0;\n}\n.fmstr-cmp-bfst-body__spec-label {\nfont-size: 11px; font-weight: 700;\nletter-spacing: 0.06em; text-transform: uppercase;\ncolor: var(--c-violet-700);\nmargin: 0 0 4px;\n}\n.fmstr-cmp-bfst-body__spec-value {\nfont-size: 14.5px; line-height: 1.5;\ncolor: var(--c-fg-1); margin: 0;\n}\n.fmstr-cmp-bfst-body__bestfor {\nbackground: var(--c-tint);\nborder-left: 3px solid var(--c-violet-500);\nborder-radius: 8px;\npadding: 12px 16px;\nfont-size: 14.5px !important;\nline-height: 1.55 !important;\ncolor: var(--c-fg-2);\nmargin: 0 0 12px !important;\n}\n.fmstr-cmp-bfst-body__bestfor strong { color: var(--c-violet-700); font-weight: 700; }\n.fmstr-cmp-bfst-body__source {\nfont-size: 13.5px !important;\ncolor: var(--c-fg-3);\nmargin: 0 !important;\n}\n\n@media (max-width: 720px) {\n.fmstr-cmp-bfst-body { padding: 16px 0; }\n.fmstr-cmp-bfst-body__container { padding: 0 14px; }\n.fmstr-cmp-bfst-body__tool { padding: 22px 18px !important; border-radius: 14px; margin: 0 0 16px; }\n.fmstr-cmp-bfst-body__h2 { font-size: 20px !important; }\n.fmstr-cmp-bfst-body__tagline { font-size: 14px !important; margin-bottom: 14px !important; }\n.fmstr-cmp-bfst-body__rank-num { width: 32px; height: 32px; font-size: 14px; }\n.fmstr-cmp-bfst-body__rank-badge { font-size: 10px; padding: 3px 8px; }\n.fmstr-cmp-bfst-body__specs { grid-template-columns: 1fr; gap: 10px; }\n.fmstr-cmp-bfst-body__bestfor { padding: 11px 14px; font-size: 14px !important; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-body\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__container\">\n\n\u003Cp class=\"fmstr-cmp-bfst-body__intro\">The 10 best free survey tools, ranked. We lead with the top picks: Google Forms, Qualtrics XM Free, and Tally. The rest follow in order of where each tool earns its place.\u003C/p>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool is-featured\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\n\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">1\u003C/span>\n\u003Cspan class=\"fmstr-cmp-bfst-body__rank-badge\">Best for internal &amp; unlimited\u003C/span>\n\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Google Forms: the only one with no response cap\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Truly free, truly unlimited, included with any Google account. No response cap, no question cap, native Google Sheets sync, file uploads, and section-based branching. The catch is shallow analytics, no real cross-tabs, and a default visual style that screams \"form\".\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Unlimited surveys, unlimited questions, unlimited responses\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Section-based branching only\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Google Sheets sync (live), CSV download\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">No vendor logo; Google footer only\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Internal surveys, classroom use, anything where you own the analysis in Sheets.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://workspace.google.com/pricing.html\">Google Workspace plans\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool is-featured\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\n\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">2\u003C/span>\n\u003Cspan class=\"fmstr-cmp-bfst-body__rank-badge\">Best for academic research\u003C/span>\n\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Qualtrics XM (Free Account): the academic favorite\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Qualtrics is the enterprise research platform behind most university IRB studies. The \u003Ca href=\"https://www.qualtrics.com/free-account/\">free account\u003C/a> gives you 3 active surveys, 30 questions per survey, 500 responses, 8 question types, and skip/display/branch logic. No credit card, no expiration. The most generous free tier for actual research design.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">3 active surveys, 30 questions per survey, 500 responses total\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Skip, display, and branch logic on the free account\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">CSV, SPSS, basic reports\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Qualtrics branding on the survey\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Students, researchers, dissertations, panel studies on a budget.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.qualtrics.com/free-account/\">Qualtrics free account\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool is-featured\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\n\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">3\u003C/span>\n\u003Cspan class=\"fmstr-cmp-bfst-body__rank-badge\">Best for indie creators\u003C/span>\n\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Tally: unlimited free, fair-use policy\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Tally gives \u003Ca href=\"https://tally.so/pricing\">unlimited forms and unlimited submissions on the free plan\u003C/a> under a fair-use guideline. Conditional logic, calculations, file uploads, payments, and signatures are all on the free plan. Tally branding stays until you pay $24/mo for Pro. The deepest free plan in this list after Google Forms.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Unlimited forms, unlimited submissions (fair use)\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Conditional logic and calculations on free\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Google Sheets, Notion, Airtable integrations on free\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Tally watermark stays on free; removed on Pro ($24/mo)\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Indie creators, small teams, anyone who hates response caps.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://tally.so/pricing\">Tally pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">4\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">SurveyMonkey: the default for one-off surveys\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">The name everyone knows. The free Basic plan gives you unlimited surveys but caps each one at 10 questions and 40 responses, and the export to CSV/XLS is locked behind the Standard plan ($39/mo). Fine for a single short poll, painful for anything recurring.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">10 questions per survey, 40 responses per survey, unlimited surveys\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Skip logic on free plan\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Locked on free; available from Standard ($39/mo)\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">SurveyMonkey logo stays on free\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> A single short survey where you only need the in-tool summary.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.surveymonkey.com/pricing/individual/details/\">SurveyMonkey pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">5\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Typeform: the conversational interface, expensive past 10 responses\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Typeform invented the one-question-at-a-time format that lifted completion rates across the industry. The free plan now caps at 10 questions per form and 10 responses per month, which is barely a test run. Paid starts at $28/mo (Basic, annual) for 100 responses.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">10 questions per form, 10 responses per month, unlimited forms\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Conditional logic on every paid tier; limited on free\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">CSV on paid; Google Sheets/HubSpot integrations on paid\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Typeform logo stays until Plus plan ($56/mo)\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Trying the format before committing to a paid plan.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.typeform.com/pricing/\">Typeform pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">6\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Microsoft Forms: free with any Microsoft 365 account\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">If your company has Microsoft 365, you already have Forms. No separate signup, no separate billing. Unlimited surveys, automatic Excel export to OneDrive, and branching logic. The interface is plain, the question types are limited, and design control is minimal, but for an internal pulse or a quick poll it is usable.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Unlimited surveys, 200 responses per form on free Microsoft accounts; higher on Microsoft 365 business plans\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Branching logic\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Excel via OneDrive\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Microsoft footer only\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Internal teams already on Microsoft 365.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.microsoft.com/en-us/microsoft-365/online-surveys-polls-quizzes\">Microsoft Forms\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">7\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">SurveySparrow: trial first, then free Basic\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">SurveySparrow leads with a 14-day trial of paid features and falls back to a Forever Free Basic plan suited to \"students, freelancers, and personal projects\". Their published Basic tier on the \u003Ca href=\"https://www.surveysparrow.com/pricing/\">pricing page\u003C/a> starts at the entry of the paid ladder; the free fallback exists but you have to opt in to it deliberately during signup. Conversational and chat-style surveys are the differentiator.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Forever Free Basic tier with limited responses and 1 user; trial unlocks Business features for 14 days\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Display and skip logic; advanced workflows on paid tiers\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">CSV; integrations on paid\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">SurveySparrow branding on free\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Conversational/chat-style surveys, NPS programs trialling.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.surveysparrow.com/pricing/\">SurveySparrow pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">8\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Survicate: continuous feedback on a trial, paid after\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Survicate is built for in-product surveys: NPS widgets, intercept polls, post-purchase flows. The free option is a 10-day trial of all features, after which paid starts at $114/mo (Growth, annual). Generous trial, no permanent free tier.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">10-day trial; no permanent free plan\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Standard survey logic on Growth, advanced on Pro\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Webhooks and Export API on Growth\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Removable on Growth plan\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> SaaS teams trialling in-product feedback before they commit.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://survicate.com/pricing/\">Survicate pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">9\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Jotform: 5 forms, 100 submissions, full feature set\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Jotform's free Starter includes \u003Ca href=\"https://www.jotform.com/pricing/\">5 forms, 100 monthly submissions, and 500 total submission storage\u003C/a>, with the entire feature set unlocked: conditional logic, 100 fields per form, payment integrations (10 monthly payment submissions), e-signatures. Jotform branding stays. Paid starts at $39/mo (Bronze) for 25 forms and 1,000 submissions.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">5 forms, 100 monthly submissions, 500 total submission storage\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Conditional logic, calculations, full feature set\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">CSV, Excel, PDF; 100+ integrations\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Jotform logo on free; removed on Bronze ($39/mo)\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> Multi-purpose surveys with payments, signatures, or file uploads.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.jotform.com/pricing/\">Jotform pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-bfst-body__tool\">\n\u003Cdiv class=\"fmstr-cmp-bfst-body__rank\">\u003Cspan class=\"fmstr-cmp-bfst-body__rank-num\">10\u003C/span>\u003C/div>\n\u003Ch2 class=\"fmstr-cmp-bfst-body__h2\">Sogolytics: 200 responses a year on FREE Pro\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-body__tagline\">Sogolytics (formerly SoGoSurvey) publishes a FREE Pro plan: \u003Ca href=\"https://www.sogolytics.com/online-survey-tool/pricing/\">15 projects/year, 100 responses per project, 200 responses per year, 200 emails per year\u003C/a>. All Pro features are included, just with lower volume caps. Tighter limits than most on this list, but the feature parity is real.\u003C/p>\n\n\u003Cul class=\"fmstr-cmp-bfst-body__specs\">\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Free plan\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">15 projects/year, 100 responses/project, 200 responses/year\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Logic\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">All Pro features including branching, piping, randomization\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Export\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">CSV, Excel, PDF on free\u003C/p>\u003C/li>\n\u003Cli class=\"fmstr-cmp-bfst-body__spec\">\u003Cp class=\"fmstr-cmp-bfst-body__spec-label\">Branding\u003C/p>\u003Cp class=\"fmstr-cmp-bfst-body__spec-value\">Sogolytics branding on free\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Cp class=\"fmstr-cmp-bfst-body__bestfor\">\u003Cstrong>Best for:\u003C/strong> A small, polished project with deep question types.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-body__source\">Source: \u003Ca href=\"https://www.sogolytics.com/online-survey-tool/pricing/\">Sogolytics pricing\u003C/a>\u003C/p>\n\u003C/article>\n\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-bfst-wdg a { text-decoration: none !important; color: #6941c6 !important; font-weight: 600; }\n.fmstr-cmp-bfst-wdg {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 40px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-wdg *, .fmstr-cmp-bfst-wdg *::before, .fmstr-cmp-bfst-wdg *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-wdg__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-wdg__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 14px;\npadding: 28px 32px;\nbox-shadow: var(--c-shadow);\nmin-width: 0;\n}\n.fmstr-cmp-bfst-wdg__h2 {\nfont-size: clamp(22px, 2.6vw, 28px) !important;\nfont-weight: 700 !important;\nline-height: 1.25 !important;\nletter-spacing: -.02em !important;\nmargin: 0 0 16px !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-bfst-wdg__p {\nfont-size: 16px !important;\nline-height: 1.7 !important;\ncolor: var(--c-fg-2);\nmargin: 0 0 14px !important;\n}\n.fmstr-cmp-bfst-wdg__p:last-child { margin-bottom: 0 !important; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-bfst-wdg { padding: 32px 0; }\n.fmstr-cmp-bfst-wdg__card { padding: 22px 20px; border-radius: 12px; }\n.fmstr-cmp-bfst-wdg__p { font-size: 15px !important; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-wdg\" aria-labelledby=\"fmstr-cmp-bfst-wdg-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-wdg__container\">\n\u003Cdiv class=\"fmstr-cmp-bfst-wdg__card\">\n\u003Ch2 class=\"fmstr-cmp-bfst-wdg__h2\" id=\"fmstr-cmp-bfst-wdg-h2\">When you need more than a survey tool\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-wdg__p\">A survey tool is built for one job: ask questions, see results, move on. Most of the above are excellent at that.\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-wdg__p\">The picture changes when the survey is not the end of the workflow. If a \"yes\" on question 7 needs to trigger a different email than a \"no\", route the response to a different CRM stage, charge a different price, or hand off to a different team owner, you are not building a survey anymore. You are building a workflow with a survey in front of it. Pure survey tools do not handle this cleanly: they will export to Sheets and expect you to bolt on Zapier, Make, or a custom script. That is fine until the third or fourth condition, when the duct tape starts to show. The same is true if you are collecting payments alongside answers, asking for file uploads that need to land in a specific Drive folder by respondent type, or running a form that has to feel branded end-to-end on mobile. At that point a form builder with survey logic outperforms a survey tool with a payments add-on. \u003Ca href=\"https://formester.com/online-survey-maker/\">Formester\u003C/a> is built for that hybrid case: conditional logic, payments, file uploads, signatures, Google Sheets and CRM sync, and custom branding all on the same plan, no Zapier required.\u003C/p>\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-bfst-tbl a { text-decoration: none !important; color: #6941c6 !important; font-weight: 500; }\n.fmstr-cmp-bfst-tbl {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-good: #12b76a;\n--c-amber: #f79009;\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-tbl *, .fmstr-cmp-bfst-tbl *::before, .fmstr-cmp-bfst-tbl *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-tbl__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-tbl__head { margin: 0 0 24px; }\n.fmstr-cmp-bfst-tbl__h2 {\nfont-size: clamp(24px, 2.8vw, 32px) !important;\nfont-weight: 700 !important;\nline-height: 1.2 !important;\nletter-spacing: -.02em !important;\nmargin: 0 !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-bfst-tbl__intro {\ncolor: var(--c-fg-3);\nfont-size: 16px !important;\nline-height: 1.55 !important;\nmargin: 10px 0 0 !important;\n}\n.fmstr-cmp-bfst-tbl__scroll {\noverflow-x: auto;\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\nbackground: var(--c-card);\nbox-shadow: 0 1px 3px rgba(16,24,40,.04);\n}\n.fmstr-cmp-bfst-tbl__table {\nwidth: 100%;\nborder-collapse: collapse;\nfont-size: 14.5px;\nmin-width: 900px;\n}\n.fmstr-cmp-bfst-tbl__table thead th {\nbackground: var(--c-tint);\ncolor: var(--c-violet-700);\ntext-align: left;\npadding: 14px 16px;\nfont-weight: 700;\nfont-size: 12.5px;\ntext-transform: uppercase;\nletter-spacing: 0.04em;\nborder-bottom: 1px solid var(--c-edge);\nwhite-space: nowrap;\n}\n.fmstr-cmp-bfst-tbl__table tbody td {\npadding: 14px 16px;\nborder-bottom: 1px solid var(--c-border);\ncolor: var(--c-fg-2);\nvertical-align: top;\n}\n.fmstr-cmp-bfst-tbl__table tbody tr:last-child td { border-bottom: none; }\n.fmstr-cmp-bfst-tbl__table tbody tr.is-featured td { background: #fbfaff; }\n.fmstr-cmp-bfst-tbl__name { color: var(--c-fg-1); font-weight: 700; }\n.fmstr-cmp-bfst-tbl__name--brand { color: var(--c-violet-700); }\n.fmstr-cmp-bfst-tbl__badge { display: inline-block; font-size: 9.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; background: var(--c-violet-600); color: #fff; padding: 3px 9px; border-radius: 9999px; margin-left: 6px; vertical-align: middle; white-space: nowrap; line-height: 1.2; }\n.fmstr-cmp-bfst-tbl__yes { color: var(--c-good); font-weight: 600; }\n.fmstr-cmp-bfst-tbl__no { color: var(--c-fg-3); }\n.fmstr-cmp-bfst-tbl__amber { color: var(--c-amber); font-weight: 600; }\n.fmstr-cmp-bfst-tbl__caption {\ncolor: var(--c-fg-3);\nfont-size: 13.5px !important;\nline-height: 1.55 !important;\nmargin: 14px 0 0 !important;\nfont-style: italic;\n}\n@media (max-width: 540px) {\n.fmstr-cmp-bfst-tbl { padding: 36px 0; }\n.fmstr-cmp-bfst-tbl__table { font-size: 13.5px; }\n.fmstr-cmp-bfst-tbl__table thead th, .fmstr-cmp-bfst-tbl__table tbody td { padding: 12px 14px; }\n}\n\n@media (max-width: 760px) {\n.fmstr-cmp-bfst-tbl__scroll { overflow-x: visible !important; border: none !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; }\n.fmstr-cmp-bfst-tbl__table { min-width: 0 !important; font-size: 14.5px !important; }\n.fmstr-cmp-bfst-tbl__table thead { display: none !important; }\n.fmstr-cmp-bfst-tbl__table tbody, .fmstr-cmp-bfst-tbl__table tr { display: block !important; }\n.fmstr-cmp-bfst-tbl__table tr { background: var(--c-card); border: 1px solid var(--c-border); border-radius: 12px; overflow: hidden; margin: 0 0 12px; }\n.fmstr-cmp-bfst-tbl__table tr.is-featured { border-color: var(--c-edge); background: linear-gradient(0deg, #fbfaff 0%, var(--c-card) 100%); }\n.fmstr-cmp-bfst-tbl__table td { display: flex !important; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 14px !important; border-bottom: 1px solid var(--c-border) !important; text-align: right; color: var(--c-fg-2); }\n.fmstr-cmp-bfst-tbl__table td:last-child { border-bottom: none !important; }\n.fmstr-cmp-bfst-tbl__table td::before { content: attr(data-label); color: var(--c-violet-700); font-weight: 700; font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; text-align: left; flex-shrink: 0; max-width: 45%; }\n.fmstr-cmp-bfst-tbl__table td:first-child { background: var(--c-tint); padding: 14px !important; border-bottom: 1px solid var(--c-edge) !important; justify-content: flex-start; text-align: left; }\n.fmstr-cmp-bfst-tbl__table td:first-child::before { display: none !important; }\n.fmstr-cmp-bfst-tbl__badge { margin-left: 8px !important; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-tbl\" aria-labelledby=\"fmstr-cmp-bfst-tbl-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-tbl__container\">\n\u003Cdiv class=\"fmstr-cmp-bfst-tbl__head\">\n\u003Ch2 class=\"fmstr-cmp-bfst-tbl__h2\" id=\"fmstr-cmp-bfst-tbl-h2\">At-a-glance comparison\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-tbl__intro\">Free response cap, logic supported, export, branding, mobile design, and the job each tool is built for.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-bfst-tbl__scroll\">\n\u003Ctable class=\"fmstr-cmp-bfst-tbl__table\">\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Tool\u003C/th>\n\u003Cth>Free response cap\u003C/th>\n\u003Cth>Logic supported\u003C/th>\n\u003Cth>Export on free\u003C/th>\n\u003Cth>Branding removed on free\u003C/th>\n\u003Cth>Mobile design\u003C/th>\n\u003Cth>Best for\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.surveymonkey.com/pricing/individual/details/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">SurveyMonkey\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">40 per survey\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Skip logic\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Quick one-off survey\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://workspace.google.com/pricing.html\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Google Forms\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Unlimited\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Section branching\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes (Sheets, CSV)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">No (Google footer)\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Internal, education\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.typeform.com/pricing/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Typeform\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">10/month\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Limited on free\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Conversational\u003C/td>\n\u003Ctd data-label=\"Best for\">Trying the format\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.qualtrics.com/free-account/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Qualtrics XM Free\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">500 total\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Skip, display, branch\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes (CSV)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Academic research\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.microsoft.com/en-us/microsoft-365/online-surveys-polls-quizzes\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Microsoft Forms\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">200 per form (free MS account)\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Branching\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes (Excel)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">No (MS footer)\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Microsoft 365 teams\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.surveysparrow.com/pricing/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">SurveySparrow\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">Forever Free Basic limits\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Display, skip\u003C/td>\n\u003Ctd data-label=\"Export on free\">CSV\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Conversational\u003C/td>\n\u003Ctd data-label=\"Best for\">NPS trial\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://survicate.com/pricing/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Survicate\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__amber\">10-day trial only\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Standard\u003C/td>\n\u003Ctd data-label=\"Export on free\">API on paid\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Embedded widgets\u003C/td>\n\u003Ctd data-label=\"Best for\">In-product feedback\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://tally.so/pricing\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Tally\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Unlimited (fair use)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Conditional, calc\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes (Sheets, Notion)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Indie creators\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.jotform.com/pricing/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Jotform\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">100/month, 5 forms\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Conditional, calc\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes (CSV, Excel)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Multi-purpose surveys\u003C/td>\n\u003C/tr>\n\n\u003Ctr>\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://www.sogolytics.com/online-survey-tool/pricing/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name\">Sogolytics\u003C/span>\u003C/a>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">200/year\u003C/td>\n\u003Ctd data-label=\"Logic supported\">All Pro features\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__no\">No\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive\u003C/td>\n\u003Ctd data-label=\"Best for\">Polished small project\u003C/td>\n\u003C/tr>\n\n\u003Ctr class=\"is-featured\">\n\u003Ctd data-label=\"Tool\">\u003Ca href=\"https://formester.com/online-survey-maker/\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__name fmstr-cmp-bfst-tbl__name--brand\">Formester\u003C/span>\u003C/a>\u003Cspan class=\"fmstr-cmp-bfst-tbl__badge\">Hybrid pick\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Free response cap\">Per plan; full feature parity across tiers\u003C/td>\n\u003Ctd data-label=\"Logic supported\">Conditional, multi-step, calculations\u003C/td>\n\u003Ctd data-label=\"Export on free\">\u003Cspan class=\"fmstr-cmp-bfst-tbl__yes\">Yes (Sheets, CRM, API)\u003C/span>\u003C/td>\n\u003Ctd data-label=\"Branding removed\">On paid plans\u003C/td>\n\u003Ctd data-label=\"Mobile design\">Responsive, mobile-first\u003C/td>\n\u003Ctd data-label=\"Best for\">Survey + workflow + payments in one\u003C/td>\n\u003C/tr>\n\n\u003C/tbody>\n\u003C/table>\n\u003C/div>\n\u003Cp class=\"fmstr-cmp-bfst-tbl__caption\">Pricing and free-plan caps checked June 2026. Always confirm on the vendor's pricing page before you commit.\u003C/p>\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-bfst-dm a { text-decoration: none !important; color: #6941c6 !important; font-weight: 500; }\n.fmstr-cmp-bfst-dm {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-dm *, .fmstr-cmp-bfst-dm *::before, .fmstr-cmp-bfst-dm *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-dm__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-dm__head { margin: 0 0 24px; }\n.fmstr-cmp-bfst-dm__h2 {\nfont-size: clamp(24px, 2.8vw, 32px) !important;\nfont-weight: 700 !important;\nline-height: 1.2 !important;\nletter-spacing: -.02em !important;\nmargin: 0 !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-bfst-dm__intro {\nfont-size: 16px !important;\nline-height: 1.6 !important;\ncolor: var(--c-fg-3);\nmargin: 10px 0 0 !important;\n}\n.fmstr-cmp-bfst-dm__grid {\ndisplay: grid;\ngrid-template-columns: repeat(2, 1fr);\ngap: 16px;\n}\n.fmstr-cmp-bfst-dm__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px 24px;\nbox-shadow: var(--c-shadow);\ndisplay: flex;\nflex-direction: column;\ngap: 10px;\nmin-width: 0;\n}\n.fmstr-cmp-bfst-dm__chip {\ndisplay: inline-block; align-self: flex-start;\nfont-size: 11px; font-weight: 700; letter-spacing: 0.06em;\ntext-transform: uppercase;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\ncolor: var(--c-violet-700);\npadding: 4px 10px; border-radius: 9999px;\n}\n.fmstr-cmp-bfst-dm__title {\nfont-size: 16px; font-weight: 700;\ncolor: var(--c-fg-1); margin: 0; line-height: 1.3;\n}\n.fmstr-cmp-bfst-dm__body {\nfont-size: 14.5px; line-height: 1.6;\ncolor: var(--c-fg-2); margin: 0;\n}\n.fmstr-cmp-bfst-dm__body strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-bfst-dm__grid { grid-template-columns: 1fr; gap: 14px; }\n}\n@media (max-width: 540px) {\n.fmstr-cmp-bfst-dm { padding: 36px 0; }\n.fmstr-cmp-bfst-dm__card { padding: 18px 20px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-dm\" aria-labelledby=\"fmstr-cmp-bfst-dm-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__container\">\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__head\">\n\u003Ch2 class=\"fmstr-cmp-bfst-dm__h2\" id=\"fmstr-cmp-bfst-dm-h2\">How to pick the right one\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-dm__intro\">Match your job to the tool. Most picks here are a survey tool. The last is honest about when a form builder fits better.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__grid\">\n\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-dm__chip\">Quick poll\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-dm__title\">For friends, family, or a class\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-dm__body\">\u003Cstrong>Google Forms or Tally.\u003C/strong> Both are unlimited and free, both handle the basics cleanly. Pick Google if you live in Sheets, Tally if you want a cleaner look.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-dm__chip\">NPS or CSAT\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-dm__title\">Quarterly NPS or CSAT program for customers\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-dm__body\">\u003Cstrong>SurveyMonkey\u003C/strong> if your team already uses it, \u003Cstrong>SurveySparrow\u003C/strong> if you want conversational NPS widgets, \u003Cstrong>Survicate\u003C/strong> if the survey lives inside your product.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-dm__chip\">Product feedback\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-dm__title\">Branching and follow-up questions\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-dm__body\">\u003Cstrong>Typeform\u003C/strong> for the conversational format if response volume is small, \u003Cstrong>Qualtrics XM Free\u003C/strong> for proper research-grade branching, or \u003Cstrong>Formester\u003C/strong> if the responses need to trigger different workflows by segment.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-dm__chip\">Internal pulse\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-dm__title\">Internal employee pulse or workplace survey\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-dm__body\">\u003Cstrong>Microsoft Forms\u003C/strong> if you are on Microsoft 365, \u003Cstrong>Google Forms\u003C/strong> if you are on Workspace, \u003Cstrong>SurveySparrow\u003C/strong> if you want recurring pulse cadences.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-dm__chip\">Academic\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-dm__title\">Dissertation or research panel\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-dm__body\">\u003Cstrong>Qualtrics XM Free, every time.\u003C/strong> 500 responses, real logic, recognized by university IRBs.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-bfst-dm__card\">\n\u003Cspan class=\"fmstr-cmp-bfst-dm__chip\">Payments &amp; files\u003C/span>\n\u003Cp class=\"fmstr-cmp-bfst-dm__title\">Survey that also takes payments, files, or signatures\u003C/p>\n\u003Cp class=\"fmstr-cmp-bfst-dm__body\">\u003Cstrong>Jotform\u003C/strong> on the free plan if 100 submissions a month is enough, \u003Cstrong>Formester\u003C/strong> if it is not and you need full feature parity without paying per feature.\u003C/p>\n\u003C/div>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-midcta a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-midcta { background: transparent; padding: 48px 0; font-family: inherit; color: #101828; overflow-x: hidden; }\n.fmstr-cmp-tmpl-midcta *, .fmstr-cmp-tmpl-midcta *::before, .fmstr-cmp-tmpl-midcta *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-midcta__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__card { width: 100%; background: linear-gradient(135deg, #f7f3ff 0%, #faf7ff 100%); border: 1px solid #e4d7ff; border-radius: 18px; padding: 48px 32px; text-align: center; box-shadow: 0 4px 24px rgba(127, 86, 217, 0.08); }\n.fmstr-cmp-tmpl-midcta__inner { max-width: 760px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__eyebrow { display: inline-block; padding: 4px 12px; background: #ffffff; border: 1px solid #e4d7ff; border-radius: 9999px; color: #5b34b1 !important; font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: 0.06em !important; text-transform: uppercase; margin: 0 0 14px !important; }\n.fmstr-cmp-tmpl-midcta__h2 { font-size: clamp(22px, 3vw, 28px) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -0.02em !important; margin: 0 0 12px !important; color: #101828 !important; }\n.fmstr-cmp-tmpl-midcta__body { font-size: 16px !important; line-height: 1.55 !important; color: #475467 !important; margin: 0 0 22px !important; }\n.fmstr-cmp-tmpl-midcta__cta { display: inline-flex !important; align-items: center; gap: 8px; background: #7f56d9 !important; color: #ffffff !important; border: 1px solid #7f56d9 !important; padding: 12px 26px !important; border-radius: 9999px !important; font-size: 15px !important; font-weight: 600 !important; text-decoration: none !important; transition: background .15s ease, transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover { background: #6941c6 !important; border-color: #6941c6 !important; color: #ffffff !important; text-decoration: none !important; transform: translateY(-1px); }\n.fmstr-cmp-tmpl-midcta__cta::after { content: \"\\2192\"; transition: transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover::after { transform: translateX(2px); }\n.fmstr-cmp-tmpl-midcta__strip { font-size: 13px !important; color: #697586 !important; margin: 20px 0 0 !important; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 14px; width: 100%; }\n.fmstr-cmp-tmpl-midcta__strip span { color: #d6c2f7; }\n@media (max-width: 760px) {\n  .fmstr-cmp-tmpl-midcta__card { padding: 36px 22px; }\n}\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-midcta { padding: 32px 0; }\n  .fmstr-cmp-tmpl-midcta__card { padding: 26px 16px; border-radius: 14px; }\n  .fmstr-cmp-tmpl-midcta__h2 { font-size: 20px !important; }\n  .fmstr-cmp-tmpl-midcta__body { font-size: 15px !important; }\n  .fmstr-cmp-tmpl-midcta__cta { padding: 11px 22px !important; font-size: 14.5px !important; width: 100%; justify-content: center; }\n  .fmstr-cmp-tmpl-midcta__strip { font-size: 12.5px !important; gap: 4px 10px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-tmpl-midcta\" aria-labelledby=\"fmstr-cmp-tmpl-midcta-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__card\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__inner\">\n\u003Cspan class=\"fmstr-cmp-tmpl-midcta__eyebrow\">Free surveys\u003C/span>\n\u003Ch2 class=\"fmstr-cmp-tmpl-midcta__h2\" id=\"fmstr-cmp-tmpl-midcta-h2\">Run real surveys on a free plan, without hitting a question wall\u003C/h2>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__body\">Multi-step forms, conditional logic, AI translate to 180+ languages. Free plan includes 100 responses/month.\u003C/p>\n\u003Ca class=\"fmstr-cmp-tmpl-midcta__cta\" href=\"https://app.formester.com/users/sign_up\" style=\"background: #7f56d9 !important; color: #ffffff !important; border-color: #7f56d9 !important; text-decoration: none !important;\">Start free on Formester\u003C/a>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__strip\">Free forever plan\u003Cspan>&bull;\u003C/span>No credit card\u003Cspan>&bull;\u003C/span>Setup in 2 minutes\u003C/p>\n\u003C/div>\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n.fmstr-cmp-bfst-faq a { text-decoration: none !important; color: #6941c6 !important; font-weight: 500; }\n.fmstr-cmp-bfst-faq {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0; --c-chip-bg: #f4f4f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-faq *, .fmstr-cmp-bfst-faq *::before, .fmstr-cmp-bfst-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-faq__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-faq__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-bfst-faq__intro { color: var(--c-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 28px; text-align: left; }\n.fmstr-cmp-bfst-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-bfst-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-bfst-faq__item > summary {\npadding: 18px 22px; cursor: pointer; font-weight: 600; font-size: 16.5px;\ncolor: var(--c-fg-1); display: flex; align-items: center; gap: 14px;\nlist-style: none;\n}\n.fmstr-cmp-bfst-faq__item > summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-bfst-faq__item > summary::before {\ncontent: \"\"; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0;\nbackground-color: var(--c-chip-bg);\nbackground-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2375747f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'/%3E%3C/svg%3E\");\nbackground-repeat: no-repeat; background-position: center;\ntransition: transform .15s ease, background-color .15s ease;\n}\n.fmstr-cmp-bfst-faq__item[open] > summary::before { transform: rotate(180deg); background-color: var(--c-tint); }\n.fmstr-cmp-bfst-faq__item[open] > summary { color: var(--c-violet-600) !important; }\n.fmstr-cmp-bfst-faq__answer { padding: 0 22px 22px 64px; color: var(--c-fg-2); font-size: 15.5px; line-height: 1.7; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-bfst-faq { padding: 40px 16px; }\n.fmstr-cmp-bfst-faq__intro { font-size: 15.5px; text-align: left; }\n.fmstr-cmp-bfst-faq__item > summary { padding: 16px 16px; font-size: 15.5px; gap: 12px; }\n.fmstr-cmp-bfst-faq__item > summary::before { width: 26px; height: 26px; }\n.fmstr-cmp-bfst-faq__answer { padding: 0 16px 18px 16px; font-size: 15px; line-height: 1.65; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-faq\" aria-labelledby=\"fmstr-cmp-bfst-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-bfst-faq__h2\" id=\"fmstr-cmp-bfst-faq-h2\">FAQ\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-faq__intro\">Eight quick answers on free survey tool limits, exports, logic, branding, and anonymous use.\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>What is the actual difference between a survey tool and a form builder?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">A survey tool is optimized for asking questions and analyzing answers: question libraries, response analytics, cross-tabs, sentiment scoring. A form builder is optimized for collecting and routing data: payments, file uploads, conditional routing, integrations, branded experiences. The lines blur, but if your end output is a chart, you want a survey tool. If your end output is a workflow, you want a form builder.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>Which free survey tool has no response cap?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Google Forms and Tally are the only two on this list with no response cap on the free plan. Google Forms has zero caps inside personal or Workspace accounts. Tally is unlimited under a fair-use policy.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>Can I export survey responses to Google Sheets for free?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Google Forms, Tally, Jotform, and Microsoft Forms (via Excel) all support free exports. SurveyMonkey locks export behind the paid Standard plan. Typeform charges for native integrations.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>Do free plans allow branching or skip logic?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Most do, with limits. Qualtrics XM Free includes skip, display, and branch logic. Tally and Jotform include conditional logic on free. SurveyMonkey gives basic skip logic. Google Forms supports section-based branching only. Typeform's free plan limits how many logic jumps you can set.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>Will the free survey show vendor branding?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Yes on almost every paid-tier vendor: SurveyMonkey, Typeform, Tally, Jotform, Sogolytics, SurveySparrow, Qualtrics. Google Forms and Microsoft Forms only show their own product footer, which most people read as neutral.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>Which survey tool has the best mobile completion rate?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Typeform's one-question-per-screen format and SurveySparrow's chat-style flow consistently lift completion on mobile, which is why both charge premium pricing for it. Tally and Formester both render mobile-first by default. Static form vendors lag.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>Can I run an anonymous survey on the free plan?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Yes on Google Forms (toggle off \"collect email\"), Microsoft Forms (toggle off identity capture), Qualtrics XM Free, SurveyMonkey, and Tally. Check the response settings before launch; some tools default to capturing email.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-bfst-faq__item\">\n\u003Csummary>What is the best free survey tool for academic research?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-bfst-faq__answer\">Qualtrics XM Free. 500 responses, skip/display/branch logic, SPSS export, no expiration, recognized by most university IRB review boards. The free account is the same product as the paid version with lower limits.\u003C/div>\n\u003C/details>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\n\u003Cstyle>\n.fmstr-cmp-bfst-rel a { text-decoration: none !important; }\n.fmstr-cmp-bfst-rel {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06);\nbackground: transparent;\npadding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-bfst-rel *, .fmstr-cmp-bfst-rel *::before, .fmstr-cmp-bfst-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-bfst-rel__container { max-width: 1200px; margin: 0 auto; min-width: 0; }\n.fmstr-cmp-bfst-rel__head { margin: 0 0 28px; text-align: left; }\n.fmstr-cmp-bfst-rel__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-bfst-rel__intro { color: var(--c-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; text-align: left; }\n\n.fmstr-cmp-bfst-rel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }\n.fmstr-cmp-bfst-rel__card {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; padding: 20px 22px; display: flex; flex-direction: column; gap: 8px;\ntext-decoration: none !important; color: inherit !important; transition: all .15s ease;\nmin-width: 0;\n}\n.fmstr-cmp-bfst-rel__card:hover { border-color: var(--c-edge); box-shadow: var(--c-shadow); transform: translateY(-1px); }\n.fmstr-cmp-bfst-rel__chip {\ndisplay: inline-block; padding: 3px 10px; border-radius: 9999px;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\ncolor: var(--c-violet-600) !important; font-size: 11.5px; font-weight: 600; letter-spacing: .02em;\ntext-transform: uppercase; align-self: flex-start;\nmargin-bottom: 2px;\n}\n.fmstr-cmp-bfst-rel__title {\nfont-size: 16px; font-weight: 700; color: var(--c-fg-1); margin: 0; line-height: 1.3; text-align: left; }\n.fmstr-cmp-bfst-rel__body { font-size: 14.5px; line-height: 1.55; color: var(--c-fg-2); margin: 0; }\n.fmstr-cmp-bfst-rel__arrow {\nmargin-top: 6px; color: var(--c-violet-600) !important; font-size: 14px; font-weight: 600;\ndisplay: inline-flex; align-items: center; gap: 6px;\n}\n.fmstr-cmp-bfst-rel__arrow::after {\ncontent: \"\\2192\"; transition: transform .15s ease; display: inline-block;\n}\n.fmstr-cmp-bfst-rel__card:hover .fmstr-cmp-bfst-rel__arrow::after { transform: translateX(3px); }\n\n@media (max-width: 880px) { .fmstr-cmp-bfst-rel__grid { grid-template-columns: 1fr 1fr; gap: 14px; } }\n@media (max-width: 540px) {\n.fmstr-cmp-bfst-rel { padding: 40px 16px; }\n.fmstr-cmp-bfst-rel__grid { grid-template-columns: 1fr; gap: 12px; }\n.fmstr-cmp-bfst-rel__card { padding: 18px 20px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-bfst-rel\" aria-labelledby=\"fmstr-cmp-bfst-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-bfst-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-bfst-rel__head\">\n\u003Ch2 class=\"fmstr-cmp-bfst-rel__h2\" id=\"fmstr-cmp-bfst-rel-h2\">Related on Formester\u003C/h2>\n\u003Cp class=\"fmstr-cmp-bfst-rel__intro\">Close cousins: makers, alternatives, and feedback workflows. All free to start.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-bfst-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/online-survey-maker/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Survey maker\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">Online survey maker\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Form builder with survey logic, payments, and Sheets sync on the same plan.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Build a survey\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/ai-survey-generator/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">AI\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">AI survey generator\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Describe the topic, get a full survey draft with logic ready to edit.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Generate a survey\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/poll-maker/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Poll\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">Poll maker\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Quick polls, single-question or multi-step, embeddable anywhere.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Make a poll\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/questionnaire-maker/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Questionnaire\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">Questionnaire maker\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Structured questionnaires with branching, scoring, and clean exports.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Build one\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/surveymonkey-alternative/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Alternative\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">SurveyMonkey alternative\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Same job, no per-survey response caps and no locked CSV export.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Compare\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/blog/best-surveymonkey-alternatives-and-competitors/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Roundup\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">Best SurveyMonkey alternatives\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">A wider roundup of SurveyMonkey alternatives with pricing context.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Read the list\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/blog/best-customer-feedback-collection-tools/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Feedback\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">Best customer feedback tools\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Tools built for continuous feedback, NPS, and CSAT programs.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">Browse picks\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-bfst-rel__card\" href=\"https://formester.com/pricing/\">\n\u003Cspan class=\"fmstr-cmp-bfst-rel__chip\">Pricing\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-bfst-rel__title\">Formester pricing\u003C/h3>\n\u003Cp class=\"fmstr-cmp-bfst-rel__body\">Free plan with full feature parity. Paid tiers lift response caps and branding.\u003C/p>\n\u003Cspan class=\"fmstr-cmp-bfst-rel__arrow\">See plans\u003C/span>\n\u003C/a>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>\n","2026-06-12T01:43:15.403Z","2026-06-15T05:35:47.068Z","2026-06-15T05:35:41.972Z","https://formester-strapi.s3.ap-south-1.amazonaws.com/best_free_survey_tools_d7bf6ba320.png",[],[21],{"id":22,"type":23},187,{"@graph":24,"@context":97},[25,41,56,94],{"@id":26,"@type":27,"author":28,"headline":30,"keywords":31,"publisher":32,"description":38,"dateModified":39,"datePublished":39,"mainEntityOfPage":40},"https://formester.com/blog/best-free-survey-tools/#article","BlogPosting",{"url":10,"name":9,"@type":29},"Person","Best Free Survey Tools 2026: 10 Tested Picks Compared (60 chars)","best free survey tools, free survey tools, best free survey software, free survey platforms",{"logo":33,"name":36,"@type":37},{"url":34,"@type":35},"https://formester.com/logo.png","ImageObject","Formester","Organization","Compared the 10 best free survey tools for 2026, with real response caps, logic limits, and exports. SurveyMonkey, Typeform, Qualtrics, Tally, and more. (158 chars)","2026-06-12","https://formester.com/blog/best-free-survey-tools/",{"@id":42,"@type":43,"itemListElement":44},"https://formester.com/blog/best-free-survey-tools/#breadcrumb","BreadcrumbList",[45,50,54],{"item":46,"name":47,"@type":48,"position":49},"https://formester.com/","Home","ListItem",1,{"item":51,"name":52,"@type":48,"position":53},"https://formester.com/blog/","Blog",2,{"item":40,"name":30,"@type":48,"position":55},3,{"@id":57,"@type":58,"mainEntity":59},"https://formester.com/blog/best-free-survey-tools/#faq","FAQPage",[60,66,70,74,78,82,86,90],{"name":61,"@type":62,"acceptedAnswer":63},"What is the actual difference between a survey tool and a form builder?","Question",{"text":64,"@type":65},"A survey tool is optimized for asking questions and analyzing answers: question libraries, response analytics, cross-tabs, sentiment scoring. A form builder is optimized for collecting and routing data: payments, file uploads, conditional routing, integrations, branded experiences. The lines blur, but if your end output is a chart, you want a survey tool. If your end output is a workflow, you want a form builder.","Answer",{"name":67,"@type":62,"acceptedAnswer":68},"Which free survey tool has no response cap?",{"text":69,"@type":65},"Google Forms and Tally are the only two on this list with no response cap on the free plan. Google Forms has zero caps inside personal or Workspace accounts. Tally is unlimited under a fair-use policy.",{"name":71,"@type":62,"acceptedAnswer":72},"Can I export survey responses to Google Sheets for free?",{"text":73,"@type":65},"Google Forms, Tally, Jotform, and Microsoft Forms (via Excel) all support free exports. SurveyMonkey locks export behind the paid Standard plan. Typeform charges for native integrations.",{"name":75,"@type":62,"acceptedAnswer":76},"Do free plans allow branching or skip logic?",{"text":77,"@type":65},"Most do, with limits. Qualtrics XM Free includes skip, display, and branch logic. Tally and Jotform include conditional logic on free. SurveyMonkey gives basic skip logic. Google Forms supports section-based branching only. Typeform's free plan limits how many logic jumps you can set.",{"name":79,"@type":62,"acceptedAnswer":80},"Will the free survey show vendor branding?",{"text":81,"@type":65},"Yes on almost every paid-tier vendor: SurveyMonkey, Typeform, Tally, Jotform, Sogolytics, SurveySparrow, Qualtrics. Google Forms and Microsoft Forms only show their own product footer, which most people read as neutral.",{"name":83,"@type":62,"acceptedAnswer":84},"Which survey tool has the best mobile completion rate?",{"text":85,"@type":65},"Typeform's one-question-per-screen format and SurveySparrow's chat-style flow consistently lift completion on mobile, which is why both charge premium pricing for it. Tally and Formester both render mobile-first by default. Static form vendors lag.",{"name":87,"@type":62,"acceptedAnswer":88},"Can I run an anonymous survey on the free plan?",{"text":89,"@type":65},"Yes on Google Forms (toggle off \"collect email\"), Microsoft Forms (toggle off identity capture), Qualtrics XM Free, SurveyMonkey, and Tally. Check the response settings before launch; some tools default to capturing email.",{"name":91,"@type":62,"acceptedAnswer":92},"What is the best free survey tool for academic research?",{"text":93,"@type":65},"Qualtrics XM Free. 500 responses, skip/display/branch logic, SPSS export, no expiration, recognized by most university IRB review boards. The free account is the same product as the paid version with lower limits.",{"@id":95,"name":30,"@type":96,"description":38},"https://formester.com/blog/best-free-survey-tools/#itemlist","ItemList","https://schema.org",2400,1350,{"text":101},"13 min read",[103,125,145,164],{"title":104,"description":105,"metaTitle":106,"metaDescription":107,"keywords":108,"author":109,"authorProfile":110,"coverImgAlt":111,"featured":12,"slug":112,"body":113,"createdAt":114,"updatedAt":115,"publishedAt":116,"coverImg":117,"metaImage":118,"schema":119,"id":120,"coverImgWidth":121,"coverImgHeight":122,"readingStats":123},"Top 5 Typeform Alternatives - Powerful & Cost effective!","Explore the top alternatives to Typeform in 2024, featuring no-code form builders that prioritize both visual appeal and functionality. Discover why users are seeking alternatives, what features to consider, and dive into Formester, Jotform, Paperform, Zoho Forms, and Google Forms. Find the perfect balance between beautiful form design and practicality for your online surveys and data collection needs.","5 Best Typeform Alternatives - Powerful & Cost effective!","Looking for a Typeform alternative? Find 5 easier, more affordable tools to build smart, interactive forms without limits or steep learning curves.","typeform alternative,\nbest typeform alternatives,\nconditional logic,\nadvanced features,\nmulti page forms,\nfree plan,\ncustomer support,\nonline form,\nuser friendly,\nfile uploads,\nsingle page,\nform fields,\nquestion types,\nbasic forms,\nconversational forms,\npaid plan,\ntypeform offers,\nquestion per page,\nform submissions,\nplans including,\nforms survey,\ndrag and drop form builder,","Navni Dighe","https://www.linkedin.com/in/navni-dighe-375908245/","a blog post cover about 5 best typeform alternatives","top-5-typeform-alternatives","![a blog post cover about 5 best typeform alternatives](https://formester-strapi.s3.ap-south-1.amazonaws.com/How_to_Make_User_Research_Survey_9_540376983b.png)\n\nIf you are tired of **Typeform pricing**, you are not the only one.\n\nIt looks modern and smooth. However, when you reach limits on form submissions, fields, or logic, the price goes up quickly. If you want features like file uploads, multi-page forms, or custom branding, costs increase fast. That simple online form can quickly feel like a luxury.\n\nYou might be asking yourself, is there a **[form builder](/)** that offers advanced features and better value with a strong free plan?\n\nYes, there is. In fact, **there are five**.\n\nThis guide shows you the best Typeform alternatives. These options offer more control, better features, and reasonable pricing. Whether you are a business owner, freelancer, or part of a growing team, you will find something that fits your needs and budget.\n\n## What Should a Better Form Builder Offer\nIf you are switching from **Typeform**, make sure your new tool gives you:\n\n- A user friendly **[drag and drop form builder](/features/drag-and-drop-form-builder/)**\n\n- Smart logic that shows or hides questions based on answers\n\n- Full branding options with custom colors and domains\n\n- A fair paid plan with no **hidden costs**\n\n- Helpful customer support when things get stuck\n\n- **Integrations with tools** you already use\n\n- Support for both single page and **multi page forms**\n\n- A wide variety of question types and form fields\n\n- **[File uploads](/features/file-upload-forms/)**, response limits, and email notifications\n\n- Options for conversational forms and basic forms\n\n- Smooth setup for **[feedback](/templates/categories/feedback-forms/)**, lead capture, or surveys\n\nLet us explore **five tools** that check these boxes.\n\n### 1. [Formester](/) – More Power, Less Price\n\n![a mockup of Formester](https://formester-strapi.s3.ap-south-1.amazonaws.com/75_e834f16056.png)\n\nIf you want all the smart features Typeform offers and more, without the cost, Formester is a smart choice.\n\nYou can start from scratch or **use AI to build your form** instantly. Add file uploads, question logic, form submissions control, and custom branding within minutes. You can build either single page or multi page forms depending on what you need.\n\nThe drag and drop form builder is simple and user friendly, even for beginners. You get advanced features without the learning curve.\n\nFormester is a great option for anyone looking to build professional forms that work fast, look great, and cost less.\n\n**Best for:** marketers, creators, SaaS teams, and businesses that want full control and flexibility.\n\n**Pricing:**\n\n- Free plan available\n\n- Paid plans start at $12/month\n\n**[Build your form in seconds using AI -->](/ai-form-generator/)**\n\n\n### 2. [Jotform](https://www.jotform.com/) – Templates for Every Team\n![a mockup of jotform](https://formester-strapi.s3.ap-south-1.amazonaws.com/72_6fd2f833fa.png)\n\nJotform comes loaded with over ten thousand templates covering surveys, booking forms, HR documents, and more.\n\nIt supports logic jumps, approval flows, file uploads, and multi page formats. You also get a wide range of question types and strong integrations.\n\nHowever, the platform can feel cluttered, and the free plan has limits that push you toward a paid plan quickly.\n\n**Best for:** teams that need fast form creation with lots of templates\n\n**Pricing:**\n\n- Free plan available\n\n- Paid plans start at $34/month\n\n### 3. \u003Ca href=\"https://paperform.co/\">Paperform\u003C/a> - Built for SMB workflows\n\n![a mockup of paperform](https://formester-strapi.s3.ap-south-1.amazonaws.com/74_143d5106d2.png)\n\nPaperform lets you design forms that feel like landing pages, but it’s built to do much more than visual presentation. It’s an all-in-one form engine for small and growing businesses, allowing teams to mix images, videos, text, and form fields while using those forms to run real workflows.\n\nIn addition to conversational form layouts, Paperform supports advanced logic, payments, bookings, eSignatures, and automation. You can guide users with one-question-at-a-time layouts, tell a story while gathering data, and trigger the right next steps automatically after submission.\n\nPaperform offers a free plan, with paid plans scaling as usage and automation needs grow. It’s particularly well suited to SMBs that want one flexible tool to handle marketing forms, client intake, payments, and feedback instead of juggling multiple platforms.\n\n**Best for:** Small and medium-sized businesses\n\n**Pricing:**\n\n- Free plan available\n\n- Paid plans start at $24/month\n\n### 4. \u003Ca href=\"https://www.zonkafeedback.com/\">Zonka Feedback\u003C/a> - AI-Powered Feedback Intelligence Platform\n![a screenshot of zonkafeedback](https://formester-strapi.s3.ap-south-1.amazonaws.com/a_screenshot_of_zonkafeedback_2ca86bc10d.png)\nZonka Feedback is an AI-powered Customer Feedback & Intelligence Platform built for teams that want more than just forms and surveys. It helps businesses collect feedback across email, web, in-app, SMS, WhatsApp, and kiosks, and brings everything into one unified system.\n\nIt offers advanced survey logic, automation, real-time dashboards, and AI-driven insights like sentiment analysis, themes, and impact scoring. You also get workflows, alerts, and a centralized inbox to close the feedback loop faster.\n\nHowever, it goes beyond simple form builders, which may feel feature-heavy for users only looking for basic data collection.\n\n**Best for:** Teams that want scalable feedback collection with powerful analytics and automation\n\n**Pricing:** Pricing available on request\n\n### 5. [Zoho Forms](https://www.zoho.com/forms/) – Built for Zoho Users\n![a mockup of zoho forms](https://formester-strapi.s3.ap-south-1.amazonaws.com/73_e3d19fc01f.png)\n\nIf your team already uses Zoho CRM or Campaigns, Zoho Forms fits perfectly into your workflow.\n\nIt allows conditional logic, multi page forms, file uploads, and automated workflows. You can assign leads, sync data, and manage internal tasks easily.\n\nWhile it is not the most modern looking tool, it is powerful for internal use.\n\n**Best for:** enterprise teams and users in the Zoho ecosystem\n\n**Pricing:**\n\n- Free plan available\n\n- Paid plans start at $7/month\n\n### 6. [Google Forms](https://docs.google.com/forms/) – Simple and Free\n![a mockup of google forms](https://formester-strapi.s3.ap-south-1.amazonaws.com/YT_Thumb_3_2abb902c68.png)\n\nGoogle Forms is a classic. It is fast, free, and connects directly with Google Sheets.\n\nYou can use it for quick forms surveys, event signups, or feedback forms. It supports basic logic and question types but does not allow branding or file uploads unless you use workarounds.\n\nIt is perfect for internal use or when you need something simple without setup.\n\n**Best for:** educators, students, and quick data collection\n\n**Pricing:**\n\n- Completely free\n\n### Which One Should You Choose\nHere is a simple breakdown to help you decide:\n\n- Want a branded, smart form builder with advanced features and AI? Choose Formester\n\n- Need lots of templates with different question types? Go for Jotform\n\n- Want forms that feel like landing pages? Try Paperform\n\n- Already use Zoho tools? Pick Zoho Forms\n\n- Need a basic form that is free and fast? Google Forms is for you\n\n### Final Thoughts\nYou do not have to keep paying high prices just to build forms.\n\n**Typeform has great design**. However, other tools offer more features, better pricing, and more flexibility. If you are making conversational forms, multi-page surveys, or simple lead capture forms, one of these options can help. They can make your work easier and **save you money**.\n\n**[Try Formester](https://app.formester.com/users/sign_up)** and start building forms that work the way you need—without the extra cost.","2024-04-07T10:04:51.560Z","2026-01-29T08:18:20.376Z","2023-09-27T16:17:54.540Z","https://formester-strapi.s3.ap-south-1.amazonaws.com/How_to_Make_User_Research_Survey_9_540376983b.png",[],[],68,1214,630,{"text":124},"6 min read",{"title":126,"description":127,"metaTitle":128,"metaDescription":129,"keywords":130,"author":131,"authorProfile":132,"coverImgAlt":133,"featured":12,"slug":134,"body":135,"createdAt":136,"updatedAt":137,"publishedAt":138,"coverImg":139,"metaImage":140,"schema":141,"id":142,"coverImgWidth":121,"coverImgHeight":122,"readingStats":143},"How to Make a Feedback Form in HTML (with Code, CSS, and a Backend)","Learn how to create a feedback form in HTML with easy steps. Set up an HTML document, add form fields, style with CSS, and add JavaScript for validation. Test your form and start collecting feedback.","How to Make a Feedback Form in HTML (Code, CSS, Validation, Backend)","Build a working feedback form in HTML with copy-paste code, CSS styling, JavaScript validation, accessibility, and a backend that stores submissions without a server.","feedback forms, fillable freedback form, how to make feedback form in html, style feedback form with css, feedback form html code","Harish Kumar","https://www.linkedin.com/in/harish-kumar2424/","an illustration of how to make feedback form in html","how-to-make-feedback-form-in-html","![an illustration of how to make feedback form in html](https://formester-strapi.s3.ap-south-1.amazonaws.com/an_illustration_of_how_to_make_feedback_form_in_html_c6203dc935.png)\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-body a { text-decoration: none !important; }\n.fmstr-cmp-ffh-body {\n--c-bg-card: #ffffff;\n--c-bg-soft: #f9fafb;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-code-bg: #0f172a; --c-code-fg: #e2e8f0;\n--c-code-keyword: #a78bfa; --c-code-attr: #67e8f9; --c-code-string: #fcd34d; --c-code-comment: #64748b;\n--c-warn-bg: #fef3c7; --c-warn-fg: #92400e; --c-warn-edge: #fde68a;\n\nbackground: transparent; padding: 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-body *, .fmstr-cmp-ffh-body *::before, .fmstr-cmp-ffh-body *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-body__container { max-width: 820px; margin: 0 auto; }\n\n.fmstr-cmp-ffh-body__intro p { font-size: 17px; line-height: 1.7; color: var(--c-fg-2); margin: 0 0 16px; }\n.fmstr-cmp-ffh-body__intro a { color: var(--c-violet-600) !important; text-decoration: none !important; font-weight: 500; }\n.fmstr-cmp-ffh-body__intro a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-body__intro code { background: var(--c-tint); color: var(--c-violet-600); padding: 2px 6px; border-radius: 4px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14.5px; border: 1px solid var(--c-edge); }\n\n.fmstr-cmp-ffh-body__h2 {\nfont-size: 28px; font-weight: 700; line-height: 1.25; letter-spacing: -.02em;\nmargin: 40px 0 16px; color: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-body__h3 {\nfont-size: 20px; font-weight: 700; line-height: 1.35; letter-spacing: -.01em;\nmargin: 28px 0 12px; color: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-body p { font-size: 16px; line-height: 1.7; color: var(--c-fg-2); margin: 0 0 14px; }\n.fmstr-cmp-ffh-body p strong { color: var(--c-fg-1); }\n.fmstr-cmp-ffh-body a { color: var(--c-violet-600) !important; text-decoration: none !important; font-weight: 500; }\n.fmstr-cmp-ffh-body a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-body ul, .fmstr-cmp-ffh-body ol { margin: 0 0 16px; padding-left: 22px; }\n.fmstr-cmp-ffh-body li { font-size: 16px; line-height: 1.7; color: var(--c-fg-2); margin: 6px 0; }\n.fmstr-cmp-ffh-body li strong { color: var(--c-fg-1); }\n.fmstr-cmp-ffh-body code { background: var(--c-tint); color: var(--c-violet-600); padding: 2px 6px; border-radius: 4px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14.5px; border: 1px solid var(--c-edge); }\n\n.fmstr-cmp-ffh-body__code {\nbackground: var(--c-code-bg); color: var(--c-code-fg);\nborder-radius: 12px; padding: 18px 20px; margin: 8px 0 18px;\noverflow-x: auto;\nfont-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13.5px; line-height: 1.6;\n}\n.fmstr-cmp-ffh-body__code pre { margin: 0; }\n.fmstr-cmp-ffh-body__code code {\nbackground: transparent !important; color: inherit !important; padding: 0; border: 0;\nfont-family: inherit !important; font-size: inherit;\n}\n.fmstr-cmp-ffh-body__code .kw { color: var(--c-code-keyword); }\n.fmstr-cmp-ffh-body__code .at { color: var(--c-code-attr); }\n.fmstr-cmp-ffh-body__code .st { color: var(--c-code-string); }\n.fmstr-cmp-ffh-body__code .cm { color: var(--c-code-comment); font-style: italic; }\n.fmstr-cmp-ffh-body__code .lang { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 10px; border-radius: 6px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.7); margin: 0 0 12px; }\n\n.fmstr-cmp-ffh-body__note {\nmargin: 14px 0 18px; padding: 14px 18px;\nbackground: var(--c-bg-soft); border-left: 3px solid var(--c-violet-500);\nborder-radius: 8px; font-size: 15.5px; color: var(--c-fg-2); line-height: 1.6;\n}\n.fmstr-cmp-ffh-body__note strong { color: var(--c-fg-1); }\n.fmstr-cmp-ffh-body__note--warn { background: var(--c-warn-bg); border-left-color: var(--c-warn-fg); }\n.fmstr-cmp-ffh-body__note--warn strong { color: var(--c-warn-fg); }\n\n.fmstr-cmp-ffh-body__variants {\ndisplay: grid; grid-template-columns: 1fr; gap: 14px; margin: 12px 0 24px;\n}\n.fmstr-cmp-ffh-body__variant {\nbackground: var(--c-bg-card); border: 1px solid var(--c-border); border-radius: 14px;\npadding: 18px 22px;\n}\n.fmstr-cmp-ffh-body__variant h4 {\nfont-size: 16px; font-weight: 700; color: var(--c-fg-1);\nmargin: 0 0 8px; line-height: 1.35;\n}\n.fmstr-cmp-ffh-body__variant p { font-size: 15px; line-height: 1.65; color: var(--c-fg-2); margin: 0; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-body { padding: 16px; }\n.fmstr-cmp-ffh-body__intro p, .fmstr-cmp-ffh-body p, .fmstr-cmp-ffh-body li { font-size: 15.5px; }\n.fmstr-cmp-ffh-body__h2 { font-size: 24px; margin-top: 32px; }\n.fmstr-cmp-ffh-body__h3 { font-size: 18.5px; }\n.fmstr-cmp-ffh-body__code { padding: 14px 16px; font-size: 12.5px; border-radius: 10px; }\n.fmstr-cmp-ffh-body__variant { padding: 16px 18px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-body\" aria-label=\"How to make a feedback form in HTML\">\n\u003Cdiv class=\"fmstr-cmp-ffh-body__container\">\n\n\u003Cdiv class=\"fmstr-cmp-ffh-body__intro\">\n\u003Cp>A feedback form in HTML is twenty lines of markup, a bit of CSS, and one decision that trips up almost everyone: what happens after the user clicks Submit?\u003C/p>\n\u003Cp>This guide ships the full pattern. You'll get a working \u003Ccode>&lt;form&gt;\u003C/code> with name, email, and message fields, CSS that styles it without a framework, JavaScript validation that doesn't break keyboard users, and three honest options for the backend, including one that needs zero server code. Paste the snippets in order, swap the action URL, and you have a live feedback form on your site in about ten minutes.\u003C/p>\n\u003Cp>If you want to skip the code entirely, \u003Ca href=\"https://formester.com/features/drag-and-drop-form-builder/\">Formester's drag-and-drop builder\u003C/a> ships a feedback form you can \u003Ca href=\"https://formester.com/features/embed-forms/\">embed in any HTML page\u003C/a> with one snippet. Keep reading for the hand-coded path.\u003C/p>\n\u003C/div>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">What a feedback form in HTML actually needs\u003C/h2>\n\u003Cp>Four pieces, in order:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>A \u003Ccode>&lt;form&gt;\u003C/code> element\u003C/strong> with the right \u003Ccode>action\u003C/code> and \u003Ccode>method\u003C/code> so the browser knows where to send data.\u003C/li>\n\u003Cli>\u003Cstrong>Labeled inputs\u003C/strong> for the fields you care about (name, email, rating, message), with \u003Ccode>name\u003C/code> attributes so the server can read them.\u003C/li>\n\u003Cli>\u003Cstrong>Validation\u003C/strong> on the client (for user experience) and on the server (for trust).\u003C/li>\n\u003Cli>\u003Cstrong>A backend\u003C/strong> that receives the submission, stores it, and ideally notifies you. This is the part most tutorials skip; it's the part you need most.\u003C/li>\n\u003C/ul>\n\u003Cp>Below, each piece is a separate step with a copy-paste block. The last step is a single complete file you can save as \u003Ccode>feedback.html\u003C/code> and open in a browser.\u003C/p>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 1: Set up the HTML document\u003C/h2>\n\u003Cp>Save this as \u003Ccode>feedback.html\u003C/code>. It's the shell every form goes inside.\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">HTML\u003C/span>\n\u003Cpre>\u003Ccode>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n&#160;&#160;&lt;meta charset=\"UTF-8\"&gt;\n&#160;&#160;&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n&#160;&#160;&lt;title&gt;Feedback Form&lt;/title&gt;\n&lt;/head&gt;\n&lt;body&gt;\n&#160;&#160;&lt;h1&gt;Tell us what you think&lt;/h1&gt;\n&#160;&#160;&lt;!-- form goes here --&gt;\n&lt;/body&gt;\n&lt;/html&gt;\u003C/code>\u003C/pre>\n\u003C/div>\n\u003Cp>Two small things that matter later: \u003Ccode>lang=\"en\"\u003C/code> helps screen readers pick the right voice, and the viewport meta tag makes the form usable on phones.\u003C/p>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 2: Add the form fields\u003C/h2>\n\u003Cp>Paste this inside \u003Ccode>&lt;body&gt;\u003C/code>, where the comment says \"form goes here\":\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">HTML\u003C/span>\n\u003Cpre>\u003Ccode>&lt;form id=\"feedback-form\" action=\"/submit-feedback\" method=\"post\" novalidate&gt;\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"name\"&gt;Name&lt;/label&gt;\n&#160;&#160;&#160;&#160;&lt;input type=\"text\" id=\"name\" name=\"name\" autocomplete=\"name\" required&gt;\n&#160;&#160;&lt;/div&gt;\n\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"email\"&gt;Email&lt;/label&gt;\n&#160;&#160;&#160;&#160;&lt;input type=\"email\" id=\"email\" name=\"email\" autocomplete=\"email\" required&gt;\n&#160;&#160;&lt;/div&gt;\n\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"rating\"&gt;How was your experience?&lt;/label&gt;\n&#160;&#160;&#160;&#160;&lt;select id=\"rating\" name=\"rating\" required&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"\"&gt;Pick one&lt;/option&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"5\"&gt;Loved it&lt;/option&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"4\"&gt;Good&lt;/option&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"3\"&gt;Okay&lt;/option&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"2\"&gt;Not great&lt;/option&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"1\"&gt;Bad&lt;/option&gt;\n&#160;&#160;&#160;&#160;&lt;/select&gt;\n&#160;&#160;&lt;/div&gt;\n\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"message\"&gt;Your feedback&lt;/label&gt;\n&#160;&#160;&#160;&#160;&lt;textarea id=\"message\" name=\"message\" rows=\"5\" required&gt;&lt;/textarea&gt;\n&#160;&#160;&lt;/div&gt;\n\n&#160;&#160;&lt;button type=\"submit\"&gt;Send feedback&lt;/button&gt;\n&lt;/form&gt;\u003C/code>\u003C/pre>\n\u003C/div>\n\u003Cp>Three details that beginners miss:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Every input has a matching \u003Ccode>&lt;label for&gt;\u003C/code>.\u003C/strong> Click the label, the input focuses. Screen readers read the label out loud. Skip this and the form fails accessibility and loses keyboard users.\u003C/li>\n\u003Cli>\u003Cstrong>\u003Ccode>name\u003C/code> attributes are not cosmetic.\u003C/strong> The server reads submissions by \u003Ccode>name\u003C/code>, so \u003Ccode>name=\"email\"\u003C/code> is what makes the email value reach your inbox. Missing \u003Ccode>name\u003C/code> = silent data loss.\u003C/li>\n\u003Cli>\u003Cstrong>\u003Ccode>autocomplete=\"name\"\u003C/code> and \u003Ccode>autocomplete=\"email\"\u003C/code>\u003C/strong> let browsers pre-fill from saved info. One line, measurable bump in completion.\u003C/li>\n\u003C/ul>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__note\">\u003Cstrong>Note:\u003C/strong> \u003Ccode>novalidate\u003C/code> on the form tag turns off the browser's default error bubbles so you can show your own (covered in Step 4). Drop it if you want native validation only.\u003C/div>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 3: Style it with CSS\u003C/h2>\n\u003Cp>Paste this inside \u003Ccode>&lt;head&gt;\u003C/code> between \u003Ccode>&lt;title&gt;\u003C/code> and the closing \u003Ccode>&lt;/head&gt;\u003C/code>:\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">CSS\u003C/span>\n\u003Cpre>\u003Ccode>&lt;style&gt;\n&#160;&#160;body {\n&#160;&#160;&#160;&#160;font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n&#160;&#160;&#160;&#160;background: #f7f7f9;\n&#160;&#160;&#160;&#160;margin: 0;\n&#160;&#160;&#160;&#160;padding: 40px 16px;\n&#160;&#160;&#160;&#160;color: #1a1a1a;\n&#160;&#160;}\n&#160;&#160;h1 { font-size: 1.5rem; margin: 0 0 24px; text-align: center; }\n&#160;&#160;form {\n&#160;&#160;&#160;&#160;max-width: 480px;\n&#160;&#160;&#160;&#160;margin: 0 auto;\n&#160;&#160;&#160;&#160;background: #fff;\n&#160;&#160;&#160;&#160;padding: 24px;\n&#160;&#160;&#160;&#160;border-radius: 12px;\n&#160;&#160;&#160;&#160;box-shadow: 0 2px 12px rgba(0,0,0,0.06);\n&#160;&#160;}\n&#160;&#160;.field { margin-bottom: 16px; }\n&#160;&#160;label {\n&#160;&#160;&#160;&#160;display: block;\n&#160;&#160;&#160;&#160;font-weight: 600;\n&#160;&#160;&#160;&#160;font-size: 0.9rem;\n&#160;&#160;&#160;&#160;margin-bottom: 6px;\n&#160;&#160;}\n&#160;&#160;input, select, textarea {\n&#160;&#160;&#160;&#160;width: 100%;\n&#160;&#160;&#160;&#160;box-sizing: border-box;\n&#160;&#160;&#160;&#160;padding: 10px 12px;\n&#160;&#160;&#160;&#160;font: inherit;\n&#160;&#160;&#160;&#160;border: 1px solid #d0d0d6;\n&#160;&#160;&#160;&#160;border-radius: 8px;\n&#160;&#160;&#160;&#160;background: #fff;\n&#160;&#160;}\n&#160;&#160;input:focus, select:focus, textarea:focus {\n&#160;&#160;&#160;&#160;outline: 2px solid #5b6cff;\n&#160;&#160;&#160;&#160;outline-offset: 1px;\n&#160;&#160;&#160;&#160;border-color: #5b6cff;\n&#160;&#160;}\n&#160;&#160;input[aria-invalid=\"true\"],\n&#160;&#160;select[aria-invalid=\"true\"],\n&#160;&#160;textarea[aria-invalid=\"true\"] {\n&#160;&#160;&#160;&#160;border-color: #d33;\n&#160;&#160;}\n&#160;&#160;.error {\n&#160;&#160;&#160;&#160;display: block;\n&#160;&#160;&#160;&#160;color: #d33;\n&#160;&#160;&#160;&#160;font-size: 0.8rem;\n&#160;&#160;&#160;&#160;margin-top: 4px;\n&#160;&#160;&#160;&#160;min-height: 1em;\n&#160;&#160;}\n&#160;&#160;button {\n&#160;&#160;&#160;&#160;width: 100%;\n&#160;&#160;&#160;&#160;padding: 12px;\n&#160;&#160;&#160;&#160;background: #5b6cff;\n&#160;&#160;&#160;&#160;color: #fff;\n&#160;&#160;&#160;&#160;font-weight: 600;\n&#160;&#160;&#160;&#160;border: none;\n&#160;&#160;&#160;&#160;border-radius: 8px;\n&#160;&#160;&#160;&#160;cursor: pointer;\n&#160;&#160;}\n&#160;&#160;button:hover { background: #4a59e0; }\n&lt;/style&gt;\u003C/code>\u003C/pre>\n\u003C/div>\n\u003Cp>Two things this stylesheet does that the typical tutorial skips:\u003C/p>\n\u003Cul>\n\u003Cli>Keeps the focus outline visible. Default focus styles are ugly, so most tutorials remove them. Removing them breaks keyboard users. Replace, don't remove.\u003C/li>\n\u003Cli>Uses \u003Ccode>system-ui\u003C/code> for fonts, so the form inherits the host site's native typography on macOS, Windows, iOS, and Android without shipping a font file.\u003C/li>\n\u003C/ul>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 4: Add accessible JavaScript validation\u003C/h2>\n\u003Cp>The alert-on-submit pattern works but it's the worst possible UX. This version shows inline errors, marks invalid fields for screen readers with \u003Ccode>aria-invalid\u003C/code>, and keeps focus where the user can fix the problem.\u003C/p>\n\u003Cp>Paste this right before \u003Ccode>&lt;/body&gt;\u003C/code>:\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">JavaScript\u003C/span>\n\u003Cpre>\u003Ccode>&lt;script&gt;\n&#160;&#160;const form = document.getElementById('feedback-form');\n\n&#160;&#160;function setError(input, message) {\n&#160;&#160;&#160;&#160;input.setAttribute('aria-invalid', 'true');\n&#160;&#160;&#160;&#160;let errorEl = input.parentElement.querySelector('.error');\n&#160;&#160;&#160;&#160;if (!errorEl) {\n&#160;&#160;&#160;&#160;&#160;&#160;errorEl = document.createElement('span');\n&#160;&#160;&#160;&#160;&#160;&#160;errorEl.className = 'error';\n&#160;&#160;&#160;&#160;&#160;&#160;errorEl.id = input.id + '-error';\n&#160;&#160;&#160;&#160;&#160;&#160;input.parentElement.appendChild(errorEl);\n&#160;&#160;&#160;&#160;}\n&#160;&#160;&#160;&#160;errorEl.textContent = message;\n&#160;&#160;&#160;&#160;input.setAttribute('aria-describedby', errorEl.id);\n&#160;&#160;}\n\n&#160;&#160;function clearError(input) {\n&#160;&#160;&#160;&#160;input.setAttribute('aria-invalid', 'false');\n&#160;&#160;&#160;&#160;const errorEl = input.parentElement.querySelector('.error');\n&#160;&#160;&#160;&#160;if (errorEl) errorEl.textContent = '';\n&#160;&#160;}\n\n&#160;&#160;form.addEventListener('submit', function (event) {\n&#160;&#160;&#160;&#160;let firstInvalid = null;\n\n&#160;&#160;&#160;&#160;[...form.querySelectorAll('input, select, textarea')].forEach((input) =&gt; {\n&#160;&#160;&#160;&#160;&#160;&#160;clearError(input);\n&#160;&#160;&#160;&#160;&#160;&#160;if (!input.value.trim()) {\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setError(input, 'This field is required.');\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;firstInvalid = firstInvalid || input;\n&#160;&#160;&#160;&#160;&#160;&#160;} else if (input.type === 'email' &amp;&amp; !/^\\S+@\\S+\\.\\S+$/.test(input.value)) {\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setError(input, 'Enter a valid email address.');\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;firstInvalid = firstInvalid || input;\n&#160;&#160;&#160;&#160;&#160;&#160;}\n&#160;&#160;&#160;&#160;});\n\n&#160;&#160;&#160;&#160;if (firstInvalid) {\n&#160;&#160;&#160;&#160;&#160;&#160;event.preventDefault();\n&#160;&#160;&#160;&#160;&#160;&#160;firstInvalid.focus();\n&#160;&#160;&#160;&#160;}\n&#160;&#160;});\n&lt;/script&gt;\u003C/code>\u003C/pre>\n\u003C/div>\n\u003Cp>What this does that the original snippet missed:\u003C/p>\n\u003Cul>\n\u003Cli>Sets \u003Ccode>aria-invalid=\"true\"\u003C/code> and \u003Ccode>aria-describedby\u003C/code> so screen readers announce the error.\u003C/li>\n\u003Cli>Inserts the error message next to the field, not in a modal.\u003C/li>\n\u003Cli>Focuses the first invalid field on failed submit, so a keyboard user lands exactly where they need to fix.\u003C/li>\n\u003Cli>Doesn't trust the email regex to be perfect (it isn't); always re-validate on the server.\u003C/li>\n\u003C/ul>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__note\">\u003Cstrong>Rule of thumb:\u003C/strong> client-side validation is for UX. Server-side validation is for trust. Do both.\u003C/div>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 5: Test the form locally\u003C/h2>\n\u003Cp>Open \u003Ccode>feedback.html\u003C/code> in a browser. Run this checklist:\u003C/p>\n\u003Cul>\n\u003Cli>Tab through every field with the keyboard. Focus should be visible at every stop.\u003C/li>\n\u003Cli>Try to submit empty. You should see inline error messages, focus should jump to the first empty field.\u003C/li>\n\u003Cli>Type a malformed email. You should see \"Enter a valid email address.\"\u003C/li>\n\u003Cli>Open the browser's network tab, submit a valid form. You should see a POST to \u003Ccode>/submit-feedback\u003C/code>. That request will currently 404 because you don't have a backend yet. Step 6 fixes that.\u003C/li>\n\u003C/ul>\n\u003Cp>If you want to skip the backend setup entirely, the next step shows the \u003Ca href=\"https://formester.com/features/html-form-backend/\">Formester HTML form backend\u003C/a> path: change one \u003Ccode>action\u003C/code> attribute and your form starts collecting submissions.\u003C/p>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\" id=\"step-6-backend\">Step 6: Wire up a backend that stores submissions\u003C/h2>\n\u003Cp>A feedback form without a backend is a dead form. The browser POSTs the data, the server returns 404, the user sees an error page, the feedback is gone. You have three real options, compared side-by-side below.\u003C/p>\n\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-back a { text-decoration: none !important; }\n.fmstr-cmp-ffh-back {\n--fmstr-cmp-ffh-back-bg-card: #ffffff;\n--fmstr-cmp-ffh-back-bg-code: #0f172a;\n--fmstr-cmp-ffh-back-fg-1: #101828;\n--fmstr-cmp-ffh-back-fg-2: #475467;\n--fmstr-cmp-ffh-back-fg-3: #697586;\n--fmstr-cmp-ffh-back-violet-500: #7f56d9;\n--fmstr-cmp-ffh-back-violet-600: #6941c6;\n--fmstr-cmp-ffh-back-tint: #f7f3ff;\n--fmstr-cmp-ffh-back-edge: #e4d7ff;\n--fmstr-cmp-ffh-back-border: #eaecf0;\n--fmstr-cmp-ffh-back-red: #dc2626;\n--fmstr-cmp-ffh-back-red-bg: #fef2f2;\n--fmstr-cmp-ffh-back-red-edge: #fecaca;\n--fmstr-cmp-ffh-back-amber: #d97706;\n--fmstr-cmp-ffh-back-amber-bg: #fffbeb;\n--fmstr-cmp-ffh-back-amber-edge: #fde68a;\n--fmstr-cmp-ffh-back-green: #15803d;\n--fmstr-cmp-ffh-back-green-bg: #f0fdf4;\n--fmstr-cmp-ffh-back-green-edge: #bbf7d0;\n--fmstr-cmp-ffh-back-code-fg: #e2e8f0;\n--fmstr-cmp-ffh-back-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit; color: var(--fmstr-cmp-ffh-back-fg-1);\n}\n.fmstr-cmp-ffh-back *, .fmstr-cmp-ffh-back *::before, .fmstr-cmp-ffh-back *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-back__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-back__head { margin: 0 0 28px; }\n.fmstr-cmp-ffh-back__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--fmstr-cmp-ffh-back-tint); color: var(--fmstr-cmp-ffh-back-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--fmstr-cmp-ffh-back-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-back__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-back__intro { color: var(--fmstr-cmp-ffh-back-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n\n.fmstr-cmp-ffh-back__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }\n.fmstr-cmp-ffh-back__card {\nbackground: var(--fmstr-cmp-ffh-back-bg-card);\nborder: 1px solid var(--fmstr-cmp-ffh-back-border);\nborder-radius: 18px; padding: 24px 26px; display: flex; flex-direction: column; gap: 16px;\nbox-shadow: var(--fmstr-cmp-ffh-back-shadow); position: relative;\n}\n.fmstr-cmp-ffh-back__card--red { border-top: 4px solid var(--fmstr-cmp-ffh-back-red); }\n.fmstr-cmp-ffh-back__card--amber { border-top: 4px solid var(--fmstr-cmp-ffh-back-amber); }\n.fmstr-cmp-ffh-back__card--green { border-top: 4px solid var(--fmstr-cmp-ffh-back-violet-500); background: linear-gradient(180deg, #fdfbff 0%, #fff 60%); }\n\n.fmstr-cmp-ffh-back__verdict {\ndisplay: inline-flex; align-items: center; gap: 8px; align-self: flex-start;\npadding: 5px 12px; border-radius: 9999px; font-size: 11.5px; font-weight: 700;\nletter-spacing: .04em; text-transform: uppercase;\n}\n.fmstr-cmp-ffh-back__verdict--red { background: var(--fmstr-cmp-ffh-back-red-bg); color: var(--fmstr-cmp-ffh-back-red); border: 1px solid var(--fmstr-cmp-ffh-back-red-edge); }\n.fmstr-cmp-ffh-back__verdict--amber { background: var(--fmstr-cmp-ffh-back-amber-bg); color: var(--fmstr-cmp-ffh-back-amber); border: 1px solid var(--fmstr-cmp-ffh-back-amber-edge); }\n.fmstr-cmp-ffh-back__verdict--green { background: var(--fmstr-cmp-ffh-back-tint); color: var(--fmstr-cmp-ffh-back-violet-600); border: 1px solid var(--fmstr-cmp-ffh-back-edge); }\n\n.fmstr-cmp-ffh-back__name { font-size: 19px; font-weight: 700; margin: 0; letter-spacing: -.01em; color: var(--fmstr-cmp-ffh-back-fg-1); }\n.fmstr-cmp-ffh-back__sub { font-size: 13.5px; color: var(--fmstr-cmp-ffh-back-fg-3); margin: -8px 0 0; line-height: 1.5; }\n\n.fmstr-cmp-ffh-back__code {\nbackground: var(--fmstr-cmp-ffh-back-bg-code);\nborder-radius: 10px; padding: 14px 16px;\nfont-family: ui-monospace, Menlo, Monaco, monospace;\nfont-size: 12px; line-height: 1.55;\ncolor: var(--fmstr-cmp-ffh-back-code-fg);\noverflow-x: auto; margin: 0; white-space: pre;\n}\n.fmstr-cmp-ffh-back__code code { font-family: inherit; }\n.fmstr-cmp-ffh-back__code .t { color: #f472b6; }\n.fmstr-cmp-ffh-back__code .a { color: #a5b4fc; }\n.fmstr-cmp-ffh-back__code .s { color: #86efac; }\n.fmstr-cmp-ffh-back__code .c { color: #64748b; font-style: italic; }\n\n.fmstr-cmp-ffh-back__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }\n.fmstr-cmp-ffh-back__row { display: flex; gap: 10px; font-size: 14px; line-height: 1.5; color: var(--fmstr-cmp-ffh-back-fg-2); }\n.fmstr-cmp-ffh-back__row::before {\ncontent: \"\"; width: 16px; height: 16px; border-radius: 50%; flex-shrink: 0; margin-top: 3px;\nbackground-repeat: no-repeat; background-position: center;\n}\n.fmstr-cmp-ffh-back__row--bad::before { background-color: var(--fmstr-cmp-ffh-back-red-bg); background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%23dc2626' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 2 L8 8 M8 2 L2 8'/%3E%3C/svg%3E\"); }\n.fmstr-cmp-ffh-back__row--meh::before { background-color: var(--fmstr-cmp-ffh-back-amber-bg); background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%23d97706' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 5 L8 5'/%3E%3C/svg%3E\"); }\n.fmstr-cmp-ffh-back__row--good::before { background-color: var(--fmstr-cmp-ffh-back-green-bg); background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%2315803d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5 L4 7 L8 3'/%3E%3C/svg%3E\"); }\n.fmstr-cmp-ffh-back__row strong { color: var(--fmstr-cmp-ffh-back-fg-1); font-weight: 600; }\n\n.fmstr-cmp-ffh-back__cta {\nmargin-top: auto; padding-top: 4px;\ndisplay: inline-flex; align-items: center; gap: 8px;\ncolor: var(--fmstr-cmp-ffh-back-violet-600) !important;\nfont-weight: 600; font-size: 14.5px;\ntext-decoration: none !important;\n}\n.fmstr-cmp-ffh-back__cta:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-back { padding: 40px 16px; }\n.fmstr-cmp-ffh-back__card { padding: 22px; }\n.fmstr-cmp-ffh-back__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-back__code { font-size: 11.5px; padding: 12px 14px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-back\" aria-labelledby=\"fmstr-cmp-ffh-back-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-back__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-back__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__eyebrow\">Three honest paths\u003C/span>\n\u003Ch2 class=\"fmstr-cmp-ffh-back__h2\" id=\"fmstr-cmp-ffh-back-h2\">What happens after the user clicks Submit\u003C/h2>\n\u003Cp class=\"fmstr-cmp-ffh-back__intro\">Without a backend, a feedback form is a dead form. The browser POSTs the data, the server returns 404, the user sees an error page. Here are the three real options, ranked by how much pain each one ships with.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-back__grid\">\n\n\u003Carticle class=\"fmstr-cmp-ffh-back__card fmstr-cmp-ffh-back__card--red\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__verdict fmstr-cmp-ffh-back__verdict--red\">Don&rsquo;t ship this\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-ffh-back__name\">Path 1: \u003Ccode>mailto:\u003C/code>\u003C/h3>\n\u003Cp class=\"fmstr-cmp-ffh-back__sub\">The \"no server\" hack that loses about half your submissions.\u003C/p>\n\u003Cpre class=\"fmstr-cmp-ffh-back__code\">\u003Ccode>\u003Cspan class=\"c\">&lt;!-- Opens the user's mail client --&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;form\u003C/span>\n\u003Cspan class=\"a\">action\u003C/span>=\u003Cspan class=\"s\">\"mailto:you@example.com\"\u003C/span>\n\u003Cspan class=\"a\">method\u003C/span>=\u003Cspan class=\"s\">\"post\"\u003C/span>\n\u003Cspan class=\"a\">enctype\u003C/span>=\u003Cspan class=\"s\">\"text/plain\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003Cul class=\"fmstr-cmp-ffh-back__list\">\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--bad\">\u003Cspan>\u003Cstrong>User-action required.\u003C/strong> Browser opens a draft email. They have to click Send manually. Half won&rsquo;t.\u003C/span>\u003C/li>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--bad\">\u003Cspan>\u003Cstrong>Breaks on mobile.\u003C/strong> Many phones have no configured mail client.\u003C/span>\u003C/li>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--bad\">\u003Cspan>\u003Cstrong>Spam-filter bait.\u003C/strong> Resulting messages are unsigned and easy to flag.\u003C/span>\u003C/li>\n\u003C/ul>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-ffh-back__card fmstr-cmp-ffh-back__card--amber\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__verdict fmstr-cmp-ffh-back__verdict--amber\">You&rsquo;ll maintain it\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-ffh-back__name\">Path 2: Your own server\u003C/h3>\n\u003Cp class=\"fmstr-cmp-ffh-back__sub\">PHP, Node, or whatever you already run. Full control, full ownership.\u003C/p>\n\u003Cpre class=\"fmstr-cmp-ffh-back__code\">\u003Ccode>\u003Cspan class=\"c\">// minimal Node/Express receiver\u003C/span>\napp.\u003Cspan class=\"t\">post\u003C/span>(\u003Cspan class=\"s\">'/submit-feedback'\u003C/span>, (req, res) =&gt; {\n\u003Cspan class=\"t\">const\u003C/span> { name, email, message } = req.body;\n\u003Cspan class=\"t\">if\u003C/span> (!validate(email)) \u003Cspan class=\"t\">return\u003C/span> res.\u003Cspan class=\"t\">status\u003C/span>(400);\ndb.\u003Cspan class=\"t\">insert\u003C/span>({ name, email, message });\nres.\u003Cspan class=\"t\">redirect\u003C/span>(\u003Cspan class=\"s\">'/thank-you'\u003C/span>);\n});\u003C/code>\u003C/pre>\n\u003Cul class=\"fmstr-cmp-ffh-back__list\">\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--meh\">\u003Cspan>\u003Cstrong>You own the server.\u003C/strong> Hosting, TLS, scaling, uptime monitoring are yours.\u003C/span>\u003C/li>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--meh\">\u003Cspan>\u003Cstrong>Spam protection is on you.\u003C/strong> Honeypot, rate limiting, CAPTCHA, all DIY.\u003C/span>\u003C/li>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Maximum control.\u003C/strong> Custom logic, database, queues, webhooks however you want.\u003C/span>\u003C/li>\n\u003C/ul>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-ffh-back__card fmstr-cmp-ffh-back__card--green\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__verdict fmstr-cmp-ffh-back__verdict--green\">Skip the server\u003C/span>\n\u003Ch3 class=\"fmstr-cmp-ffh-back__name\">Path 3: Formester HTML form backend\u003C/h3>\n\u003Cp class=\"fmstr-cmp-ffh-back__sub\">One \u003Ccode>action\u003C/code> attribute swap. No server code, no infra.\u003C/p>\n\u003Cpre class=\"fmstr-cmp-ffh-back__code\">\u003Ccode>\u003Cspan class=\"c\">&lt;!-- The only change vs. Path 2 --&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;form\u003C/span>\n\u003Cspan class=\"a\">action\u003C/span>=\u003Cspan class=\"s\">\"https://app.formester.com/\u003C/span>\n\u003Cspan class=\"s\">    api/v1/forms/YOUR_ID/submissions\"\u003C/span>\n\u003Cspan class=\"a\">method\u003C/span>=\u003Cspan class=\"s\">\"post\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003Cul class=\"fmstr-cmp-ffh-back__list\">\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Submissions land in the dashboard.\u003C/strong> View, filter, \u003Ca href=\"https://formester.com/features/export-form-submission-pdf/\">export to PDF\u003C/a>, push to Sheets/Slack/HubSpot.\u003C/span>\u003C/li>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Spam protection built in.\u003C/strong> Honeypot plus \u003Ca href=\"https://formester.com/features/spam-protection/\">reCAPTCHA-style checks\u003C/a> on every submission.\u003C/span>\u003C/li>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Free for 100 submissions/month.\u003C/strong> Email notifications, dashboard, integrations included. Used by 56,000+ teams.\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Ca class=\"fmstr-cmp-ffh-back__cta\" href=\"https://formester.com/features/html-form-backend/\">See the HTML form backend &rarr;\u003C/a>\n\u003C/article>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-code a { text-decoration: none !important; }\n.fmstr-cmp-ffh-code {\n--fmstr-cmp-ffh-code-bg-card: #ffffff;\n--fmstr-cmp-ffh-code-bg-code: #0f172a;\n--fmstr-cmp-ffh-code-bg-preview: #f7f7f9;\n--fmstr-cmp-ffh-code-fg-1: #101828;\n--fmstr-cmp-ffh-code-fg-2: #475467;\n--fmstr-cmp-ffh-code-fg-3: #697586;\n--fmstr-cmp-ffh-code-violet-500: #7f56d9;\n--fmstr-cmp-ffh-code-violet-600: #6941c6;\n--fmstr-cmp-ffh-code-tint: #f7f3ff;\n--fmstr-cmp-ffh-code-edge: #e4d7ff;\n--fmstr-cmp-ffh-code-border: #eaecf0;\n--fmstr-cmp-ffh-code-code-fg: #e2e8f0;\n--fmstr-cmp-ffh-code-code-tag: #f472b6;\n--fmstr-cmp-ffh-code-code-attr: #a5b4fc;\n--fmstr-cmp-ffh-code-code-str: #86efac;\n--fmstr-cmp-ffh-code-code-comment: #64748b;\n--fmstr-cmp-ffh-code-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit; color: var(--fmstr-cmp-ffh-code-fg-1);\n}\n.fmstr-cmp-ffh-code *, .fmstr-cmp-ffh-code *::before, .fmstr-cmp-ffh-code *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-code__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-code__head { max-width: 780px; margin: 0 0 32px; }\n.fmstr-cmp-ffh-code__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--fmstr-cmp-ffh-code-tint); color: var(--fmstr-cmp-ffh-code-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--fmstr-cmp-ffh-code-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-code__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-code__intro { color: var(--fmstr-cmp-ffh-code-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n\n.fmstr-cmp-ffh-code__grid {\ndisplay: grid; grid-template-columns: 1fr; gap: 0;\nbackground: var(--fmstr-cmp-ffh-code-bg-card);\nborder: 1px solid var(--fmstr-cmp-ffh-code-border);\nborder-radius: 20px; overflow: hidden;\nbox-shadow: var(--fmstr-cmp-ffh-code-shadow);\n}\n\n.fmstr-cmp-ffh-code__preview-pane {\nbackground: var(--fmstr-cmp-ffh-code-bg-preview);\npadding: 28px 24px;\ndisplay: flex; flex-direction: column; gap: 14px;\nborder-bottom: 1px solid var(--fmstr-cmp-ffh-code-border);\n}\n.fmstr-cmp-ffh-code__preview-label {\nfont-size: 11px; font-weight: 700; letter-spacing: .08em;\ntext-transform: uppercase; color: var(--fmstr-cmp-ffh-code-fg-3);\ndisplay: flex; align-items: center; gap: 8px;\n}\n.fmstr-cmp-ffh-code__preview-label::before {\ncontent: \"\"; width: 8px; height: 8px; border-radius: 50%;\nbackground: #22c55e; flex-shrink: 0;\n}\n.fmstr-cmp-ffh-code__preview-form {\nbackground: #fff; padding: 22px 20px; border-radius: 12px;\nbox-shadow: 0 2px 12px rgba(0,0,0,0.06);\ndisplay: flex; flex-direction: column; gap: 14px;\n}\n.fmstr-cmp-ffh-code__preview-h { font-size: 16px; font-weight: 700; text-align: center; margin: 0 0 4px; color: var(--fmstr-cmp-ffh-code-fg-1); }\n.fmstr-cmp-ffh-code__preview-field { display: flex; flex-direction: column; gap: 6px; }\n.fmstr-cmp-ffh-code__preview-label-row { font-size: 12.5px; font-weight: 600; color: var(--fmstr-cmp-ffh-code-fg-1); }\n.fmstr-cmp-ffh-code__preview-input {\nbackground: #fff; border: 1px solid #d0d0d6; border-radius: 8px;\npadding: 9px 11px; font-size: 12.5px; color: var(--fmstr-cmp-ffh-code-fg-3);\n}\n.fmstr-cmp-ffh-code__preview-input--focus { outline: 2px solid var(--fmstr-cmp-ffh-code-violet-500); outline-offset: 1px; border-color: var(--fmstr-cmp-ffh-code-violet-500); color: var(--fmstr-cmp-ffh-code-fg-1); }\n.fmstr-cmp-ffh-code__preview-select {\nbackground: #fff; border: 1px solid #d0d0d6; border-radius: 8px;\npadding: 9px 11px; font-size: 12.5px; color: var(--fmstr-cmp-ffh-code-fg-3);\ndisplay: flex; justify-content: space-between; align-items: center;\n}\n.fmstr-cmp-ffh-code__preview-textarea {\nbackground: #fff; border: 1px solid #d0d0d6; border-radius: 8px;\npadding: 9px 11px; font-size: 12.5px; color: var(--fmstr-cmp-ffh-code-fg-3);\nmin-height: 54px;\n}\n.fmstr-cmp-ffh-code__preview-btn {\nbackground: var(--fmstr-cmp-ffh-code-violet-500); color: #fff;\npadding: 10px; border-radius: 8px; text-align: center;\nfont-weight: 600; font-size: 13px; margin-top: 4px;\n}\n.fmstr-cmp-ffh-code__preview-caption {\nfont-size: 12px; color: var(--fmstr-cmp-ffh-code-fg-3); line-height: 1.5; margin: 4px 0 0;\n}\n\n.fmstr-cmp-ffh-code__code-pane {\nbackground: var(--fmstr-cmp-ffh-code-bg-code);\nposition: relative; max-height: 560px;\ndisplay: flex; flex-direction: column;\n}\n.fmstr-cmp-ffh-code__code-header {\ndisplay: flex; align-items: center; justify-content: space-between;\npadding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,0.08);\ncolor: var(--fmstr-cmp-ffh-code-code-comment);\nfont-family: ui-monospace, Menlo, Monaco, monospace; font-size: 12px;\n}\n.fmstr-cmp-ffh-code__code-filename { display: flex; align-items: center; gap: 8px; }\n.fmstr-cmp-ffh-code__code-filename::before {\ncontent: \"\"; width: 10px; height: 10px; border-radius: 50%; background: #f87171;\nbox-shadow: 16px 0 0 #fbbf24, 32px 0 0 #34d399;\nmargin-right: 12px;\n}\n.fmstr-cmp-ffh-code__code-copy {\nbackground: rgba(127, 86, 217, 0.18) !important;\ncolor: #c4b5fd !important; border: 1px solid rgba(127, 86, 217, 0.4);\npadding: 6px 14px; border-radius: 6px; font-size: 12px; font-weight: 600;\ncursor: pointer; font-family: ui-monospace, Menlo, Monaco, monospace;\ndisplay: inline-flex; align-items: center; gap: 6px;\n}\n.fmstr-cmp-ffh-code__code-copy:hover { background: rgba(127, 86, 217, 0.28) !important; }\n.fmstr-cmp-ffh-code__code-body {\nmargin: 0; padding: 18px 20px;\nfont-family: ui-monospace, Menlo, Monaco, monospace;\nfont-size: 12.5px; line-height: 1.65;\ncolor: var(--fmstr-cmp-ffh-code-code-fg);\noverflow: auto; flex-grow: 1;\nwhite-space: pre;\nscrollbar-width: thin; scrollbar-color: rgba(167,139,250,.35) transparent;\n}\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar { width: 10px; height: 10px; }\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar-track { background: transparent; }\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar-thumb { background: rgba(167,139,250,.3); border-radius: 5px; }\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar-thumb:hover { background: rgba(167,139,250,.5); }\n.fmstr-cmp-ffh-code__code-body code { font-family: inherit; }\n.fmstr-cmp-ffh-code__tag { color: var(--fmstr-cmp-ffh-code-code-tag); }\n.fmstr-cmp-ffh-code__attr { color: var(--fmstr-cmp-ffh-code-code-attr); }\n.fmstr-cmp-ffh-code__str { color: var(--fmstr-cmp-ffh-code-code-str); }\n.fmstr-cmp-ffh-code__cmt { color: var(--fmstr-cmp-ffh-code-code-comment); font-style: italic; }\n\n.fmstr-cmp-ffh-code__foot {\nmargin: 20px auto 0; max-width: 780px; text-align: center;\ncolor: var(--fmstr-cmp-ffh-code-fg-3); font-size: 14.5px; line-height: 1.6;\n}\n.fmstr-cmp-ffh-code__foot a { color: var(--fmstr-cmp-ffh-code-violet-600) !important; font-weight: 600; }\n.fmstr-cmp-ffh-code__foot a:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-code { padding: 40px 16px; }\n.fmstr-cmp-ffh-code__grid { border-radius: 16px; }\n.fmstr-cmp-ffh-code__preview-pane { padding: 22px 18px; }\n.fmstr-cmp-ffh-code__code-pane { max-height: 420px; }\n.fmstr-cmp-ffh-code__code-body { font-size: 11.5px; padding: 14px 16px; }\n.fmstr-cmp-ffh-code__intro { font-size: 15.5px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-code\" aria-labelledby=\"fmstr-cmp-ffh-code-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__eyebrow\">Copy, paste, ship\u003C/span>\n\u003Ch2 class=\"fmstr-cmp-ffh-code__h2\" id=\"fmstr-cmp-ffh-code-h2\">The complete feedback form, in one file\u003C/h2>\n\u003Cp class=\"fmstr-cmp-ffh-code__intro\">Structure, styling, and accessible JavaScript validation in a single working file. Save as \u003Ccode>feedback.html\u003C/code>, swap the \u003Ccode>action\u003C/code> URL, and the form is live.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-code__grid\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-pane\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-label\">Live preview\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-form\">\n\u003Ch3 class=\"fmstr-cmp-ffh-code__preview-h\">Tell us what you think\u003C/h3>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">Name\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-input\">Jane Doe\u003C/div>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">Email\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-input fmstr-cmp-ffh-code__preview-input--focus\">jane@example.com\u003C/div>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">How was your experience?\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-select\">\u003Cspan>Loved it\u003C/span>\u003Cspan>&#9662;\u003C/span>\u003C/div>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">Your feedback\u003C/span>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-textarea\">The dashboard is fast and the export to PDF saved my week.\u003C/div>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-btn\">Send feedback\u003C/div>\n\u003C/div>\n\u003Cp class=\"fmstr-cmp-ffh-code__preview-caption\">Rendered output. Keyboard-accessible focus ring on the active field, inline error slot ready, mobile-friendly layout.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-code__code-pane\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__code-header\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__code-filename\">feedback.html\u003C/span>\n\u003Cbutton type=\"button\" class=\"fmstr-cmp-ffh-code__code-copy\" aria-label=\"Copy code\">Copy\u003C/button>\n\u003C/div>\n\u003Cpre class=\"fmstr-cmp-ffh-code__code-body\">\u003Ccode>\u003Cspan class=\"fmstr-cmp-ffh-code__cmt\">&lt;!DOCTYPE html&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;html\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">lang\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"en\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;head&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;meta\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">charset\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"UTF-8\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;meta\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"viewport\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">content\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"width=device-width, initial-scale=1.0\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;title&gt;\u003C/span>Feedback Form\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/title&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;style&gt;\u003C/span>\nbody { font-family: system-ui, sans-serif; background: #f7f7f9; padding: 40px 16px; }\nform { max-width: 480px; margin: 0 auto; background: #fff; padding: 24px; border-radius: 12px; }\n.field { margin-bottom: 16px; }\nlabel { display: block; font-weight: 600; margin-bottom: 6px; }\ninput, select, textarea { width: 100%; padding: 10px 12px; border: 1px solid #d0d0d6; border-radius: 8px; box-sizing: border-box; }\ninput:focus, select:focus, textarea:focus { outline: 2px solid #5b6cff; border-color: #5b6cff; }\n[aria-invalid=\"true\"] { border-color: #d33; }\n.error { display: block; color: #d33; font-size: 0.8rem; margin-top: 4px; }\nbutton { width: 100%; padding: 12px; background: #5b6cff; color: #fff; font-weight: 600; border: none; border-radius: 8px; cursor: pointer; }\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/style&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/head&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;body&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;h1&gt;\u003C/span>Tell us what you think\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/h1&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;form\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"feedback-form\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">action\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"https://app.formester.com/api/v1/forms/YOUR_FORM_ID/submissions\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">method\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"post\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">novalidate\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Name\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;input\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">type\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"text\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">autocomplete\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/div&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Email\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;input\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">type\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">autocomplete\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/div&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"rating\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>How was your experience?\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;select\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"rating\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"rating\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Pick one\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/option&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"5\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Loved it\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/option&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"3\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Okay\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/option&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"1\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Bad\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/option&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/select&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/div&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"message\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Your feedback\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;textarea\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"message\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"message\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">rows\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"5\"\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;&lt;/textarea&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/div&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;button\u003C/span> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">type\u003C/span>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"submit\"\u003C/span>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C/span>Send feedback\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/button&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/form&gt;\u003C/span>\n\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;script&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__cmt\">// Accessible inline validation: aria-invalid, aria-describedby, focus management\u003C/span>\nconst form = document.getElementById(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'feedback-form'\u003C/span>);\nform.addEventListener(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'submit'\u003C/span>, (e) =&gt; {\nlet firstInvalid = null;\n[...form.querySelectorAll(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'input, select, textarea'\u003C/span>)].forEach((input) =&gt; {\nconst valid = input.value.trim() &amp;&amp; (input.type !== \u003Cspan class=\"fmstr-cmp-ffh-code__str\">'email'\u003C/span> || /^\\S+@\\S+\\.\\S+$/.test(input.value));\ninput.setAttribute(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'aria-invalid'\u003C/span>, valid ? \u003Cspan class=\"fmstr-cmp-ffh-code__str\">'false'\u003C/span> : \u003Cspan class=\"fmstr-cmp-ffh-code__str\">'true'\u003C/span>);\nif (!valid &amp;&amp; !firstInvalid) firstInvalid = input;\n});\nif (firstInvalid) { e.preventDefault(); firstInvalid.focus(); }\n});\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/script&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/body&gt;\u003C/span>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;/html&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003C/div>\n\u003C/div>\n\n\u003Cp class=\"fmstr-cmp-ffh-code__foot\">The \u003Ccode>action\u003C/code> URL above points to \u003Ca href=\"https://formester.com/features/html-form-backend/\">Formester&rsquo;s HTML form backend\u003C/a>. Replace \u003Ccode>YOUR_FORM_ID\u003C/code> with your form&rsquo;s ID, or point it at your own server. Everything else stays the same.\u003C/p>\n\u003C/div>\n\u003C/section>\n\n\u003Csection class=\"fmstr-cmp-ffh-body\" aria-label=\"Common mistakes and variants\">\n\u003Cdiv class=\"fmstr-cmp-ffh-body__container\">\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Common mistakes that break feedback forms\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>mailto:\u003C/code> as the action.\u003C/strong> Looks like the easy answer. Drops half your submissions because the user has to manually send the draft. Use a real backend.\u003C/li>\n\u003Cli>\u003Cstrong>Missing \u003Ccode>name\u003C/code> attributes.\u003C/strong> The form POSTs successfully but the server gets empty fields. \u003Ccode>id\u003C/code> is for CSS and labels; \u003Ccode>name\u003C/code> is what the server reads.\u003C/li>\n\u003Cli>\u003Cstrong>Removed focus outlines.\u003C/strong> \u003Ccode>outline: none\u003C/code> is the most copy-pasted CSS mistake on the web. It breaks keyboard navigation. Replace the outline; don't delete it.\u003C/li>\n\u003Cli>\u003Cstrong>Client-side validation only.\u003C/strong> A user with DevTools open can submit anything. Validate on the server too.\u003C/li>\n\u003Cli>\u003Cstrong>No spam protection.\u003C/strong> Public forms attract bots within hours. Add a honeypot field (a hidden input that bots fill and humans don't) or a CAPTCHA. \u003Ca href=\"https://formester.com/features/spam-protection/\">Formester's backend\u003C/a> does this automatically.\u003C/li>\n\u003Cli>\u003Cstrong>No confirmation page or message.\u003C/strong> The user submits, the page reloads, nothing visibly changes. They submit again. Add a \u003Ccode>&lt;p role=\"status\"&gt;Thanks, we got it&lt;/p&gt;\u003C/code> or redirect to a thank-you page.\u003C/li>\n\u003C/ul>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Variants of the feedback form\u003C/h2>\n\u003Cp>The base form covers most cases. Three common variants:\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variants\">\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variant\">\n\u003Ch4>Customer feedback (with rating)\u003C/h4>\n\u003Cp>Add a 1-5 star scale instead of the dropdown. The \u003Ccode>&lt;input type=\"range\"&gt;\u003C/code> works, but a row of radio buttons styled as stars is clearer for screen readers. The \u003Ca href=\"https://formester.com/templates/customer-feedback-form-31840/\">customer feedback form template\u003C/a> ships this layout pre-built.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variant\">\n\u003Ch4>Product feedback (with feature picker)\u003C/h4>\n\u003Cp>Add a checkbox group: \"Which features did you use?\" with options like Onboarding, Search, Reporting. Use \u003Ccode>&lt;fieldset&gt;&lt;legend&gt;\u003C/code> around the group so screen readers announce it as one question. The \u003Ca href=\"https://formester.com/templates/categories/feedback-forms/\">feedback form templates library\u003C/a> has a fuller version.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variant\">\n\u003Ch4>Employee feedback (anonymous)\u003C/h4>\n\u003Cp>Drop the name and email fields entirely. Add a \"Department\" dropdown and a longer text area. If you collect this through Formester, turn off IP tracking in the form settings to keep submissions genuinely anonymous. The \u003Ca href=\"https://formester.com/templates/categories/feedback-forms/\">employee feedback templates\u003C/a> are preconfigured for this.\u003C/p>\n\u003C/div>\n\u003C/div>\n\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-a11y a { text-decoration: none !important; }\n.fmstr-cmp-ffh-a11y {\n--fmstr-cmp-ffh-a11y-bg-card: #ffffff;\n--fmstr-cmp-ffh-a11y-bg-code: #0f172a;\n--fmstr-cmp-ffh-a11y-fg-1: #101828;\n--fmstr-cmp-ffh-a11y-fg-2: #475467;\n--fmstr-cmp-ffh-a11y-fg-3: #697586;\n--fmstr-cmp-ffh-a11y-violet-500: #7f56d9;\n--fmstr-cmp-ffh-a11y-violet-600: #6941c6;\n--fmstr-cmp-ffh-a11y-tint: #f7f3ff;\n--fmstr-cmp-ffh-a11y-edge: #e4d7ff;\n--fmstr-cmp-ffh-a11y-border: #eaecf0;\n--fmstr-cmp-ffh-a11y-red-bg: #fef2f2;\n--fmstr-cmp-ffh-a11y-red-edge: #fecaca;\n--fmstr-cmp-ffh-a11y-red: #b91c1c;\n--fmstr-cmp-ffh-a11y-green-bg: #f0fdf4;\n--fmstr-cmp-ffh-a11y-green-edge: #bbf7d0;\n--fmstr-cmp-ffh-a11y-green: #15803d;\n--fmstr-cmp-ffh-a11y-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit; color: var(--fmstr-cmp-ffh-a11y-fg-1);\n}\n.fmstr-cmp-ffh-a11y *, .fmstr-cmp-ffh-a11y *::before, .fmstr-cmp-ffh-a11y *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-a11y__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-a11y__head { margin: 0 0 28px; }\n.fmstr-cmp-ffh-a11y__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--fmstr-cmp-ffh-a11y-tint); color: var(--fmstr-cmp-ffh-a11y-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--fmstr-cmp-ffh-a11y-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-a11y__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-a11y__intro { color: var(--fmstr-cmp-ffh-a11y-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n\n.fmstr-cmp-ffh-a11y__list { display: flex; flex-direction: column; gap: 16px; }\n.fmstr-cmp-ffh-a11y__item {\nbackground: var(--fmstr-cmp-ffh-a11y-bg-card);\nborder: 1px solid var(--fmstr-cmp-ffh-a11y-border);\nborder-radius: 16px; padding: 22px 24px;\ndisplay: grid; grid-template-columns: 44px 1fr 1fr; gap: 20px; align-items: start;\nbox-shadow: var(--fmstr-cmp-ffh-a11y-shadow);\n}\n.fmstr-cmp-ffh-a11y__num {\nwidth: 36px; height: 36px; border-radius: 10px;\nbackground: var(--fmstr-cmp-ffh-a11y-tint);\ncolor: var(--fmstr-cmp-ffh-a11y-violet-600);\ndisplay: grid; place-items: center;\nfont-weight: 700; font-size: 15px;\nborder: 1px solid var(--fmstr-cmp-ffh-a11y-edge);\n}\n\n.fmstr-cmp-ffh-a11y__copy h3 {\nfont-size: 17px; font-weight: 600; letter-spacing: -.01em;\ncolor: var(--fmstr-cmp-ffh-a11y-fg-1); margin: 0 0 6px;\n}\n.fmstr-cmp-ffh-a11y__copy p { color: var(--fmstr-cmp-ffh-a11y-fg-2); font-size: 14.5px; line-height: 1.6; margin: 0; }\n.fmstr-cmp-ffh-a11y__copy strong { color: var(--fmstr-cmp-ffh-a11y-fg-1); font-weight: 600; }\n\n.fmstr-cmp-ffh-a11y__pair { display: flex; flex-direction: column; gap: 10px; }\n.fmstr-cmp-ffh-a11y__codebox {\nbackground: var(--fmstr-cmp-ffh-a11y-bg-code);\nborder-radius: 8px; padding: 10px 12px;\nfont-family: ui-monospace, Menlo, Monaco, monospace;\nfont-size: 11.5px; line-height: 1.55;\ncolor: #e2e8f0; overflow-x: auto; margin: 0;\nwhite-space: pre; position: relative; padding-left: 50px;\n}\n.fmstr-cmp-ffh-a11y__codebox code { font-family: inherit; }\n.fmstr-cmp-ffh-a11y__codebox::before {\ncontent: \"\"; position: absolute; left: 10px; top: 11px;\nwidth: 14px; height: 14px; border-radius: 50%;\nbackground-repeat: no-repeat; background-position: center;\n}\n.fmstr-cmp-ffh-a11y__codebox--bad::before { background-color: var(--fmstr-cmp-ffh-a11y-red-bg); background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none' stroke='%23b91c1c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M1.5 1.5 L6.5 6.5 M6.5 1.5 L1.5 6.5'/%3E%3C/svg%3E\"); }\n.fmstr-cmp-ffh-a11y__codebox--good::before { background-color: var(--fmstr-cmp-ffh-a11y-green-bg); background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9' fill='none' stroke='%2315803d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 4.5 L3.5 6.5 L7 3'/%3E%3C/svg%3E\"); }\n.fmstr-cmp-ffh-a11y__codebox-label {\nposition: absolute; top: 11px; left: 28px;\nfont-size: 9px; font-weight: 700; letter-spacing: .08em;\ntext-transform: uppercase;\n}\n.fmstr-cmp-ffh-a11y__codebox--bad .fmstr-cmp-ffh-a11y__codebox-label { color: var(--fmstr-cmp-ffh-a11y-red); }\n.fmstr-cmp-ffh-a11y__codebox--good .fmstr-cmp-ffh-a11y__codebox-label { color: var(--fmstr-cmp-ffh-a11y-green); }\n\n.fmstr-cmp-ffh-a11y__codebox .t { color: #f472b6; }\n.fmstr-cmp-ffh-a11y__codebox .a { color: #a5b4fc; }\n.fmstr-cmp-ffh-a11y__codebox .s { color: #86efac; }\n\n.fmstr-cmp-ffh-a11y__foot {\nmargin: 28px auto 0; max-width: 760px; text-align: center;\ncolor: var(--fmstr-cmp-ffh-a11y-fg-3); font-size: 14.5px; line-height: 1.6;\n}\n.fmstr-cmp-ffh-a11y__foot a { color: var(--fmstr-cmp-ffh-a11y-violet-600) !important; font-weight: 600; }\n.fmstr-cmp-ffh-a11y__foot a:hover { text-decoration: underline !important; }\n\n@media (max-width: 880px) {\n.fmstr-cmp-ffh-a11y__item { grid-template-columns: 36px 1fr; gap: 16px; }\n.fmstr-cmp-ffh-a11y__pair { grid-column: 1 / -1; }\n}\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-a11y { padding: 40px 16px; }\n.fmstr-cmp-ffh-a11y__item { padding: 18px; border-radius: 14px; }\n.fmstr-cmp-ffh-a11y__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-a11y__codebox { font-size: 11px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-a11y\" aria-labelledby=\"fmstr-cmp-ffh-a11y-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-a11y__eyebrow\">Five flags worth catching\u003C/span>\n\u003Ch2 class=\"fmstr-cmp-ffh-a11y__h2\" id=\"fmstr-cmp-ffh-a11y-h2\">Accessibility checklist for an HTML feedback form\u003C/h2>\n\u003Cp class=\"fmstr-cmp-ffh-a11y__intro\">Every item below is something keyboard and screen-reader users actually hit. Skip these and a measurable chunk of your audience can&rsquo;t complete the form.\u003C/p>\n\u003C/div>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__list\">\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">1\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Pair every label with its input\u003C/h3>\n\u003Cp>The label&rsquo;s \u003Ccode>for\u003C/code> must match the input&rsquo;s \u003Ccode>id\u003C/code>. Click the label, focus the input. Screen readers announce the label out loud. Skip this and the form fails WCAG 2.1 and loses keyboard users.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;label&gt;\u003C/span>Email\u003Cspan class=\"t\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;label\u003C/span> \u003Cspan class=\"a\">for\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>Email\u003Cspan class=\"t\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">id\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003C/div>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">2\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Connect errors with \u003Ccode>aria-describedby\u003C/code>\u003C/h3>\n\u003Cp>An invalid field needs \u003Ccode>aria-invalid=\"true\"\u003C/code> plus an \u003Ccode>aria-describedby\u003C/code> that points at the visible error message. Screen readers then announce the error along with the field name on focus.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">id\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;span&gt;\u003C/span>Invalid email\u003Cspan class=\"t\">&lt;/span&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">id\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\n\u003Cspan class=\"a\">aria-invalid\u003C/span>=\u003Cspan class=\"s\">\"true\"\u003C/span>\n\u003Cspan class=\"a\">aria-describedby\u003C/span>=\u003Cspan class=\"s\">\"email-error\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;span\u003C/span> \u003Cspan class=\"a\">id\u003C/span>=\u003Cspan class=\"s\">\"email-error\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>Invalid email\u003Cspan class=\"t\">&lt;/span&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003C/div>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">3\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Use \u003Ccode>autocomplete\u003C/code> tokens\u003C/h3>\n\u003Cp>One line per field. Browsers prefill from saved info, password managers behave, and assistive tech recognizes the field&rsquo;s purpose. Measurable lift in completion rate on mobile.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"text\"\u003C/span> \u003Cspan class=\"a\">name\u003C/span>=\u003Cspan class=\"s\">\"name\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span> \u003Cspan class=\"a\">name\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"text\"\u003C/span> \u003Cspan class=\"a\">name\u003C/span>=\u003Cspan class=\"s\">\"name\"\u003C/span>\n\u003Cspan class=\"a\">autocomplete\u003C/span>=\u003Cspan class=\"s\">\"name\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span> \u003Cspan class=\"a\">name\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\n\u003Cspan class=\"a\">autocomplete\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003C/div>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">4\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Keep focus outlines visible\u003C/h3>\n\u003Cp>\u003Ccode>outline: none\u003C/code> is the single most-copied CSS mistake on the web. It breaks keyboard navigation. Replace the default outline, never delete it. The visible ring is how a sighted keyboard user knows where they are.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C/span>\u003Ccode>input:focus { outline: none; }\u003C/code>\u003C/pre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C/span>\u003Ccode>input:focus {\noutline: 2px solid #5b6cff;\noutline-offset: 1px;\n}\u003C/code>\u003C/pre>\n\u003C/div>\n\u003C/article>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">5\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Mark required fields semantically\u003C/h3>\n\u003Cp>The native \u003Ccode>required\u003C/code> attribute does two jobs at once: it tells the browser to block submission and tells screen readers the field is required. Don&rsquo;t fake it with just a red asterisk in the label.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;label&gt;\u003C/span>Email \u003Cspan class=\"t\">&lt;span&gt;\u003C/span>*\u003Cspan class=\"t\">&lt;/span&gt;&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C/span>\u003Ccode>\u003Cspan class=\"t\">&lt;label\u003C/span> \u003Cspan class=\"a\">for\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>Email (required)\u003Cspan class=\"t\">&lt;/label&gt;\u003C/span>\n\u003Cspan class=\"t\">&lt;input\u003C/span> \u003Cspan class=\"a\">id\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span> \u003Cspan class=\"a\">type\u003C/span>=\u003Cspan class=\"s\">\"email\"\u003C/span> \u003Cspan class=\"a\">required\u003C/span>\u003Cspan class=\"t\">&gt;\u003C/span>\u003C/code>\u003C/pre>\n\u003C/div>\n\u003C/article>\n\n\u003C/div>\n\n\u003Cp class=\"fmstr-cmp-ffh-a11y__foot\">For edge cases (fieldsets, error summaries, custom controls), the \u003Ca href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/form\">MDN \u003Ccode>&lt;form&gt;\u003C/code> reference\u003C/a> is the canonical source.\u003C/p>\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-faq a { text-decoration: none !important; }\n.fmstr-cmp-ffh-faq {\n--c-bg: #fafafb; --c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467;\n--c-violet-600: #6941c6; --c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0; --c-chip-bg: #f4f4f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-faq *, .fmstr-cmp-ffh-faq *::before, .fmstr-cmp-ffh-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-faq__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-faq__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); }\n.fmstr-cmp-ffh-faq__intro { color: #697586; font-size: 17px; line-height: 1.6; margin: 14px 0 28px; max-width: 760px; }\n.fmstr-cmp-ffh-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-ffh-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-ffh-faq__item > summary {\npadding: 18px 22px; cursor: pointer; font-weight: 600; font-size: 16.5px;\ncolor: var(--c-fg-1); display: flex; align-items: center; gap: 14px;\nlist-style: none;\n}\n.fmstr-cmp-ffh-faq__item > summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-ffh-faq__item > summary::before {\ncontent: \"\"; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0;\nbackground-color: var(--c-chip-bg);\nbackground-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2375747f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'/%3E%3C/svg%3E\");\nbackground-repeat: no-repeat; background-position: center;\ntransition: transform .15s ease, background-color .15s ease;\n}\n.fmstr-cmp-ffh-faq__item[open] > summary::before { transform: rotate(180deg); background-color: var(--c-tint); }\n.fmstr-cmp-ffh-faq__item[open] > summary { color: var(--c-violet-600); }\n.fmstr-cmp-ffh-faq__answer { padding: 0 22px 22px 64px; color: var(--c-fg-2); font-size: 15.5px; line-height: 1.7; }\n.fmstr-cmp-ffh-faq__answer a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-ffh-faq__answer a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-faq__answer code {\nbackground: var(--c-chip-bg); padding: 1px 6px; border-radius: 4px;\nfont-family: ui-monospace, Menlo, Monaco, monospace; font-size: 13.5px;\ncolor: var(--c-violet-600);\n}\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-faq { padding: 40px 16px; }\n.fmstr-cmp-ffh-faq__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-faq__item > summary { padding: 16px 16px; font-size: 15.5px; gap: 12px; }\n.fmstr-cmp-ffh-faq__item > summary::before { width: 26px; height: 26px; }\n.fmstr-cmp-ffh-faq__answer { padding: 0 16px 18px 16px; font-size: 15px; line-height: 1.65; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-faq\" aria-labelledby=\"fmstr-cmp-ffh-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-ffh-faq__h2\" id=\"fmstr-cmp-ffh-faq-h2\">HTML feedback form FAQ\u003C/h2>\n\u003Cp class=\"fmstr-cmp-ffh-faq__intro\">Answers that mirror the FAQPage JSON-LD on the live page.\u003C/p>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do you add a feedback form in HTML?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Use a \u003Ccode>&lt;form&gt;\u003C/code> element with \u003Ccode>action\u003C/code> set to your submission endpoint and \u003Ccode>method=\"post\"\u003C/code>. Inside the form, add labeled \u003Ccode>&lt;input&gt;\u003C/code> and \u003Ccode>&lt;textarea&gt;\u003C/code> elements with \u003Ccode>name\u003C/code> attributes. Style with CSS, validate with JavaScript, and point the \u003Ccode>action\u003C/code> at a backend (your server, or a service like \u003Ca href=\"https://formester.com/features/html-form-backend/\">Formester&rsquo;s HTML form backend\u003C/a>). The complete copy-paste example above is the shortest working version.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I create a feedback form?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Decide what to ask (name, email, rating, open-ended feedback are the standard four). Write the HTML using a \u003Ccode>&lt;form&gt;\u003C/code> with one labeled input per question. Style it with CSS so it matches your site. Hook the \u003Ccode>action\u003C/code> to a backend that stores submissions. The full process is the six steps above, or skip ahead to \u003Ca href=\"https://formester.com/features/drag-and-drop-form-builder/\">Formester&rsquo;s drag-and-drop builder\u003C/a> if you&rsquo;d rather not write code.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I create an inquiry form in HTML?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Same pattern as a feedback form, with different field labels. Swap \"How was your experience?\" for \"What are you interested in?\" and \"Your feedback\" for \"Your message.\" Keep the name, email, and submit-button structure identical. For a longer inquiry form with subject lines and contact preferences, the \u003Ca href=\"https://formester.com/blog/contact-form-design-tips-best-practices-and-examples/\">contact form design best practices guide\u003C/a> covers the patterns.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do you add a comment to a form in HTML?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Two meanings. (1) An HTML comment for developers: \u003Ccode>&lt;!-- this is the feedback section --&gt;\u003C/code> between elements. (2) A user-facing comment field: a \u003Ccode>&lt;textarea&gt;\u003C/code> with a label like \"Your comments.\" If you want comments to be optional, leave off the \u003Ccode>required\u003C/code> attribute. Use \u003Ccode>rows\u003C/code> and \u003Ccode>cols\u003C/code> (or CSS height) to size the box.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I add CSS to a feedback form?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Two options. Inline \u003Ccode>&lt;style&gt;\u003C/code> tags inside \u003Ccode>&lt;head&gt;\u003C/code> work fine for one-off pages. For any real site, link an external stylesheet with \u003Ccode>&lt;link rel=\"stylesheet\" href=\"styles.css\"&gt;\u003C/code>. Style the \u003Ccode>form\u003C/code>, \u003Ccode>label\u003C/code>, \u003Ccode>input\u003C/code>, \u003Ccode>textarea\u003C/code>, and \u003Ccode>button\u003C/code> selectors directly. Step 3 above ships a complete starter stylesheet you can paste, including focus rings and inline error styles.\u003C/div>\n\u003C/details>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I add JavaScript validation without breaking accessibility?\u003C/summary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Use \u003Ccode>aria-invalid=\"true\"\u003C/code> on invalid fields, \u003Ccode>aria-describedby\u003C/code> to point at the inline error message, and move focus to the first invalid field on submit failure. Avoid \u003Ccode>alert()\u003C/code> boxes, they break screen-reader flow. The Step 4 JavaScript and the complete example above are accessibility-tested versions you can paste directly. Always re-validate on the server too, since a user with DevTools open can bypass client-side checks.\u003C/div>\n\u003C/details>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-vid a { text-decoration: none !important; }\n.fmstr-cmp-ffh-vid {\n--c-bg-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-vid *, .fmstr-cmp-ffh-vid *::before, .fmstr-cmp-ffh-vid *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-vid__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-vid__head { margin: 0 0 24px; }\n.fmstr-cmp-ffh-vid__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--c-tint); color: var(--c-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--c-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-vid__h2 { font-size: clamp(24px, 2.8vw, 32px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); }\n.fmstr-cmp-ffh-vid__sub { color: var(--c-fg-3); font-size: 16px; line-height: 1.6; margin: 12px 0 0; }\n.fmstr-cmp-ffh-vid__frame {\nposition: relative; aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden;\nbackground: var(--c-tint); border: 1px solid var(--c-border); box-shadow: var(--c-shadow);\n}\n.fmstr-cmp-ffh-vid__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }\n.fmstr-cmp-ffh-vid__caption { color: var(--c-fg-3); font-size: 14px; line-height: 1.6; text-align: center; margin: 16px 0 0; }\n.fmstr-cmp-ffh-vid__caption a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-ffh-vid__caption a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-vid__caption code {\nbackground: var(--c-tint); padding: 1px 6px; border-radius: 4px;\nfont-family: ui-monospace, Menlo, Monaco, monospace; font-size: 13px;\ncolor: var(--c-violet-600);\n}\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-vid { padding: 40px 16px; }\n.fmstr-cmp-ffh-vid__sub { font-size: 15px; }\n.fmstr-cmp-ffh-vid__frame { border-radius: 16px; }\n.fmstr-cmp-ffh-vid__caption { font-size: 13.5px; }\n}\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-vid\" aria-labelledby=\"fmstr-cmp-ffh-vid-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-vid__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-vid__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-vid__eyebrow\">Three-minute walkthrough\u003C/span>\n\u003Ch2 class=\"fmstr-cmp-ffh-vid__h2\" id=\"fmstr-cmp-ffh-vid-h2\">Watch the full HTML feedback form built from scratch\u003C/h2>\n\u003Cp class=\"fmstr-cmp-ffh-vid__sub\">Structure, CSS, accessible validation, backend swap. All six steps in one short video.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-vid__frame\">\n\u003Ciframe src=\"https://www.youtube.com/embed/8FC3c5Cv5ew\" title=\"How to make a feedback form in HTML\" loading=\"lazy\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\u003C/div>\n\u003Cp class=\"fmstr-cmp-ffh-vid__caption\">Prefer reading? The full tutorial is below with copy-paste blocks. To skip the backend setup entirely, point the form&rsquo;s \u003Ccode>action\u003C/code> at \u003Ca href=\"https://formester.com/features/html-form-backend/\">Formester&rsquo;s HTML form backend\u003C/a>.\u003C/p>\n\u003C/div>\n\u003C/section>\n\n\u003Cstyle>\n/* host-link-override */\n.fmstr-cmp-ffh-rel a { text-decoration: none !important; }\n.fmstr-cmp-ffh-rel {\n--c-bg: #f4f4f7; --c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-rel *, .fmstr-cmp-ffh-rel *::before, .fmstr-cmp-ffh-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-rel__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-rel__head { margin: 0 0 28px; }\n.fmstr-cmp-ffh-rel__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-rel__intro { color: var(--c-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n.fmstr-cmp-ffh-rel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }\n.fmstr-cmp-ffh-rel__card {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; padding: 18px 20px; display: flex; align-items: center; gap: 14px;\ntext-decoration: none !important; color: inherit !important; transition: all .15s ease;\n}\n.fmstr-cmp-ffh-rel__card:hover { border-color: var(--c-edge); box-shadow: var(--c-shadow); transform: translateY(-1px); }\n.fmstr-cmp-ffh-rel__icon { width: 40px; height: 40px; border-radius: 10px; background: var(--c-tint); display: grid; place-items: center; flex-shrink: 0; font-size: 18px; border: 1px solid var(--c-edge); }\n.fmstr-cmp-ffh-rel__text { flex-grow: 1; }\n.fmstr-cmp-ffh-rel__text h4 { font-size: 14.5px; font-weight: 600; color: var(--c-fg-1); margin: 0; }\n.fmstr-cmp-ffh-rel__text small { font-size: 12.5px; color: var(--c-fg-3); display: block; margin-top: 2px; }\n.fmstr-cmp-ffh-rel__arrow { color: var(--c-violet-500); font-size: 18px; }\n\n@media (max-width: 880px) { .fmstr-cmp-ffh-rel__grid { grid-template-columns: 1fr 1fr; gap: 12px; } }\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-rel { padding: 40px 16px; }\n.fmstr-cmp-ffh-rel__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-rel__card { padding: 16px; gap: 12px; }\n}\n@media (max-width: 540px) { .fmstr-cmp-ffh-rel__grid { grid-template-columns: 1fr; gap: 12px; } }\n\u003C/style>\n\n\u003Csection class=\"fmstr-cmp-ffh-rel\" aria-labelledby=\"fmstr-cmp-ffh-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__head\">\n\u003Ch2 class=\"fmstr-cmp-ffh-rel__h2\" id=\"fmstr-cmp-ffh-rel-h2\">More from Formester on HTML forms and feedback\u003C/h2>\n\u003Cp class=\"fmstr-cmp-ffh-rel__intro\">Pair this tutorial with the backend features, ready-made templates, and adjacent how-tos.\u003C/p>\n\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/features/html-form-backend/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128229;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>HTML Form Backend\u003C/h4>\u003Csmall>One \u003Ccode>action\u003C/code> swap, no server\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/features/embed-forms/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128279;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Embed Forms\u003C/h4>\u003Csmall>Drop a form into any HTML page\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/features/spam-protection/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128737;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Spam Protection\u003C/h4>\u003Csmall>Honeypot + reCAPTCHA built in\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/templates/customer-feedback-form-31840/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#11088;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Customer Feedback Form\u003C/h4>\u003Csmall>Pre-built template\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/templates/categories/feedback-forms/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128196;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>All Feedback Templates\u003C/h4>\u003Csmall>Customer, product, employee\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/ai-form-generator/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#10024;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>AI Form Generator\u003C/h4>\u003Csmall>The no-code alternative\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/blog/how-to-send-contact-form-data-to-google-sheets-free/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128203;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Send form data to Google Sheets\u003C/h4>\u003Csmall>Free, step-by-step\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/blog/contact-form-design-tips-best-practices-and-examples/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#127912;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Contact form design tips\u003C/h4>\u003Csmall>Best practices and examples\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https://formester.com/blog/how-to-build-spam-free-contact-forms-for-your-website/\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#129302;\u003C/div>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Build spam-free contact forms\u003C/h4>\u003Csmall>Stop bots before they hit your inbox\u003C/small>\u003C/div>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C/span>\n\u003C/a>\n\n\u003C/div>\n\u003C/div>\n\u003C/section>","2024-06-27T06:19:40.031Z","2026-05-17T04:46:01.948Z","2026-05-17T04:46:01.940Z","https://formester-strapi.s3.ap-south-1.amazonaws.com/an_illustration_of_how_to_make_feedback_form_in_html_c6203dc935.png",[],[],365,{"text":144},"16 min read",{"title":146,"description":147,"metaTitle":146,"metaDescription":148,"keywords":149,"author":109,"authorProfile":110,"coverImgAlt":146,"featured":12,"slug":150,"body":151,"createdAt":152,"updatedAt":153,"publishedAt":154,"coverImg":155,"metaImage":156,"schema":157,"id":161,"coverImgWidth":121,"coverImgHeight":122,"readingStats":162},"Jotform Vs SurveyMonkey: Forms, Surveys, or Both?","Discover the ultimate showdown between Jotform and SurveyMonkey in our detailed comparison blog. Uncover their unique features, similarities, best use-cases, and limitations. But wait, there's more! Dive into the superior solution - Formester, catering to both surveys and web forms with advanced customization and seamless integrations. Don't miss this comprehensive guide to make the right choice for your form-building and data-collection needs!","Jotform vs. SurveyMonkey: An In-depth Comparison with Unique Features, Use-Cases & More! | Discover Formester - Surveys & Web Forms!","Jotform, SurveyMonkey, Comparison, Form-building, Form creation tools comparison, Jotform features, SurveyMonkey advantages, Formester benefits, Jotform vs SurveyMonkey detailed analysis, Best form builder for surveys and web forms, Survey creation, Jotform vs SurveyMonkey, Jotform for surveys, SurveyMonkey alternatives, Form-building comparison, Choosing the right form builder. Versatility, Customization, Similarities, Differences, Use-cases, Limitations, Data analysis, Formester, Is Jotform better than SurveyMonkey?, Can Jotform be used for surveys?, Seamless integration, Advanced features, Conditional logic, Robust reporting, User-friendly, Data collection, Decision-making, jotform pricing, surveymonkey pricing","jotform-vs-surveymonkey-forms-surveys-or-both","\nWhen it comes to choosing a form-builder, [Jotform](https://www.jotform.com/) has gained significant popularity and is often the go-to choice for many users. \n\nHowever, when it comes to survey-building specifically, the presence of platforms like [SurveyMonkey](https://www.surveymonkey.com/) and [SurveySparrow](https://surveysparrow.com/) with the term **Survey** in their names itself, can create a perception that they may be the better option for survey-related tasks. \n\nBut is this perception based on reality or mere assumptions?\n\nAren't there other factors to consider beyond just their names?\n\nIn this blog, we aim to uncover the truth and delve into the key differences between a versatile form-builder like Jotform, which also offers survey-building capabilities;\n\nAnd survey-specific platforms like SurveyMonkey. \n\nJoin us as we embark on a comprehensive comparison of Jotform and SurveyMonkey to uncover the unique features and functionalities that set them apart.\n\nBy the end of this journey, you'll have a clearer understanding of which platform aligns best with your unique requirements. \n\n## Jotform: The Versatility of Jotform's All-in-One Form-Building Platform\n\nWhen it comes to creating forms of diverse kinds, Jotform is your go-to solution. \n\n![Screenshot showing: Jotform's Home-Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_homepage_jotform_3c76ed69e4.png \"Jotform's Home-Page\")\n\nWith its intuitive interface, comprehensive features, and unparalleled flexibility, Jotform empowers its users to design and customize forms that suit their unique needs. \n\nWhether you're looking to create [simple contact forms](/templates/categories/contact-forms/) or complex surveys, Jotform offers a robust platform that ensures seamless form-building every step of the way.\n\n### What Sets Jotform Apart from SurveyMonkey?\n\nLet's explore the key factors that make Jotform unique from SurveyMonkey:\n\n![Screenshot showing: What Sets Jotform Apart from SurveyMonkey?: 1. Versatility in Form Building 2. Superior Customization 3. Advanced Form Features 4. Powerful Integrations 5. Extensive Template Library 6. Collaboration and Workflow Management](https://formester-strapi.s3.ap-south-1.amazonaws.com/what_sets_jotform_apart_from_surveymonkey_30e8de81d5.png \"What Sets Jotform Apart from SurveyMonkey?\")\n\n#### 1. Versatility in Form Building\n\nJotform offers a wide range of form-building options, catering to both simple and complex form requirements.\n\nWith such a setup and capabilities, Jotform equips its users to create both, web forms that cater to diverse business processes, as well as surveys that allow for data collection and research.\n\n#### 2. Superior Customization\n\nWith Jotform, you have extensive customization options, allowing you to tailor every aspect of your forms, including designs, themes, and branding to match and maintain your brand identity.\n\n#### 3. Advanced Form Features\n\nJotform offers a plethora of advanced form features, such as **conditional logic, payment processing, file uploads, calculations, multi-page forms**, empowering you to create dynamic, interactive and personalized form experiences. Moreover, it also offers Form Analytics to derive meaningful insights from the submissions received.\n\n#### 4. Powerful Integrations\n\n[Jotform provides seamless integrations with a wide range of third-party applications](https://www.jotform.com/integrations/), enabling its users to connect their forms with other tools, services and systems to streamline workflows and enhance productivity.\n\n#### 5. Extensive Template Library\n\n[Jotform boasts a vast collection of pre-designed form templates](https://www.jotform.com/form-templates/?classic), spanning various industries and use cases, making it easy for its users to kickstart their form-building process, by making minor edits.\n\n#### 6. Collaboration and Workflow Management\n\n[Jotform offers collaborative features](https://www.jotform.com/help/419-understanding-form-collaboration/), allowing multiple members of the same team to work together on form creation, share forms internally or with clients, and manage form submissions efficiently.\n\nThese unique features make Jotform a standout choice for individuals and businesses seeking a versatile, collaborative, and secure form-building platform. Whether you're collecting customer feedback, conducting surveys, or automating workflows, Jotform has the tools and capabilities to meet your specific needs.\n\n## SurveyMonkey: Powerful Data Collection with SurveyMonkey's Advanced Survey Solution\n\nSurveyMonkey stands tall as a trusted and widely recognized platform, in the world of online surveys.\n\n![Screenshot showing: SurveyMonkey's Home-Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_homepage_surveymonkey_114edc0711.png \"SurveyMonkey's Home-Page\")\n\nWith its range of advanced features and tools, SurveyMonkey offers an extensive toolkit to conduct surveys and gather valuable insights. \n\nSurveyMonkey empowers its users to collect, analyze, and make data-driven decisions with ease. \n\nIf you're looking to explore the true potential of surveys and gain deeper insights for your research, SurveyMonkey is here to elevate your survey game. \n\n### What Sets SurveyMonkey Apart from Jotform?\n\nLet's explore what makes SurveyMonkey unique from Jotform:\n\n![Screenshot showing: What Sets SurveyMonkey Apart from Jotform?: 1. Extensive Survey Features 2. AI-Powered Survey Expert 3. Powerful Data Analysis & Reporting 4. Market Research Solutions 5. Integrated Survey Panel 6. Branding, Customization, and Ease of Use](https://formester-strapi.s3.ap-south-1.amazonaws.com/what_sets_surveymonkey_apart_from_jotform_6df6156a73.png \"What Sets SurveyMonkey Apart from Jotform?\")\n\n#### 1. Extensive Survey Features\n\nSurveyMonkey is designed specifically for survey creation and offers a wide array of survey-specific features, including [pre-built survey templates](https://www.surveymonkey.com/mp/survey-templates/), **question libraries, skip logic and randomization options**, that help its users create engaging and interactive surveys.\n\n#### 2. AI-Powered Survey Expert\n\n[SurveyMonkey's AI-powered survey expert, SurveyMonkey Genius](https://www.surveymonkey.com/curiosity/ai-powered-market-research-features-audience-and-insights/), offers personalized recommendations, suggesting questions and responses to streamline survey creation. \n\nThis feature evidently helps cut down user workload helping users create high-quality surveys in less time.\n\n#### 3. Powerful Data Analysis & Reporting\n\n[SurveyMonkey's robust data analysis features](https://www.surveymonkey.com/mp/analyze/), including automatic results summaries, customizable dashboards, and real-time tracking, allow users to gain valuable insights from their survey responses. Additionally, with the ability to apply filters and cross-tab reports, users can easily slice and dice data to uncover valuable insights. Also the various export options available, users can easily analyze and share their survey data for data-driven decision-making.\n\n#### 4. Market Research Solutions\n\n[SurveyMonkey offers dedicated solutions for market research](https://www.surveymonkey.com/market-research/), making it an ideal choice for businesses looking to conduct professional market research surveys. \n\nFeatures like sample selection, demographic targeting, and statistical significance testing empower users to gather valuable insights for their research studies.\n\n#### 5. Integrated Survey Panel\n\nSurveyMonkey provides access to a large, diverse panel of survey respondents through its [integrated survey panel feature](https://www.surveymonkey.com/market-research/solutions/audience-panel/). \n\nThis allows users to reach a wider audience and obtain representative data for their surveys, thereby enhancing the reliability and accuracy of research findings.\n\n#### 6. Branding, Customization, and Ease of Use\n\nWith SurveyMonkey, users can easily customize their surveys to match their brand's visual style, using features like adding logos, brand colors, custom themes, and templates. \n\nMoreover, the user-friendly interface and intuitive survey creation process make it accessible to users of all levels of technical expertise.\n\nThese unique features and capabilities make SurveyMonkey a preferred choice for individuals, businesses, and researchers seeking a dedicated surveying platform. \n\nHaving covered the unique features of each of these platforms, now let's move on to a...\n\n## Feature-Wise Comparison of Jotform and SurveyMonkey\n\nA one-on-one feature-wise comparison will help you evaluate these platforms for different functionalities and map them to your specific requirements.\n\n![Infographic showing: Feature-Wise Comparison of Jotform and SurveyMonkey: 1. Form and Survey Creation: - Jotform: Multiple form fields and customization options. - SurveyMonkey: Specializes in survey creation and question types. 2. Customization and Branding: - Jotform: Extensive customization with branding options. - SurveyMonkey: Limited branding customization options. 3. Question Types: - Jotform: Wide range of question types. - SurveyMonkey: Comprehensive selection of survey question types.](https://formester-strapi.s3.ap-south-1.amazonaws.com/feature_wise_comparison_of_jotform_and_surveymonkey_836d23e1ae.png \" Feature-Wise Comparison of Jotform and SurveyMonkey: 1. Form and Survey Creation 2. Customization and Branding 3. Question Types\")\n\n### 1. Form and Survey Creation\n\n**Jotform:** Jotform offers multiple kinds of form fields, a variety of customization options, and a wide range of form elements, including text inputs, images, files, dropdowns, ratings, and payments, to create versatile forms and surveys. \n\n![Screenshot showing: Jotform's Form Builder Dashboard](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_03700204b3.png \"Jotform's Form Builder Dashboard\")\n\nIt provides an intuitive drag-and-drop interface for easy form building. \n\n**SurveyMonkey:** SurveyMonkey specializes in survey creation, offering a variety of question types, skip logic, and randomization, specifically for gathering feedback and insights.\n\n![Screenshot showing: SurveyMonkey's Survey Builder Dashboard](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_2_99ee8169ad.png \"SurveyMonkey's Survey Builder Dashboard\")\n\n### 2. Customization and Branding\n\n**Jotform:** Jotform allows you to customize the look and feel of your forms with branding elements such as logos, colors, and fonts. It offers a range of design options to match your brand identity.\n\n![Screenshot showing: Jotform's Customization and Branding Options](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_3_35de481222.png \"Jotform's Customization and Branding Options\")\n\n**SurveyMonkey:** SurveyMonkey also provides customization options to align your surveys with your brand. You can add your logo, select color themes, and apply custom styling to create surveys that reflect your brand image. However, the customization options are limited, with less flexibility in terms of branding and visual customization.\n\n![Screenshot showing: SurveyMonkey's Customization and Branding Options](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_4_af28f98e69.png \"SurveyMonkey's Customization and Branding Options\")\n\n### 3. Question Types\n\n**Jotform:** Jotform offers a wide range of question types, including multiple-choice, dropdowns, checkboxes, text fields, file uploads, rating scales, and more.\n\n![Screenshot showing: Jotform's Question Types](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_5_27bbb7ce90.png \"Jotform's Question Types\")\n\n**SurveyMonkey:** SurveyMonkey provides a comprehensive selection of survey question types, including multiple-choice, ranking, matrix, slider, open-ended, and demographic questions.\n\n![Screenshot showing: SurveyMonkey's Question Types](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_6_8acd609967.png \"SurveyMonkey's Question Types\")\n\n![Infographic showing: Feature-Wise Comparison of Jotform and SurveyMonkey: 4. Integration and Collaboration: - Jotform: Integrates with third-party apps and offers collaboration. - SurveyMonkey: Integrates with apps and provides collaboration. 5. Logic and Branching: - Jotform: Conditional logic for dynamic form experiences. - SurveyMonkey: Skip logic and branching for customized surveys. 6. Advanced Questionnaire Options: - Jotform: Question piping, prefilling, and calculations. - SurveyMonkey: Question randomization and validation.](https://formester-strapi.s3.ap-south-1.amazonaws.com/feature_wise_comparison_of_jotform_and_surveymonkey_1_46d5f0655e.png \"Feature-Wise Comparison of Jotform and SurveyMonkey: 4. Integration and Collaboration 5. Logic and Branching 6. Advanced Questionnaire Options\")\n\n### 4. Integration and Collaboration\n\n**Jotform:** Jotform integrates with numerous third-party applications and services, allowing you to connect your forms with other tools in your workflow. It also offers collaboration features, enabling team members to work together on form creation.\n\n![Screenshot showing: Jotform's Integrations Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_7_baac340f1f.png \"Jotform's Integrations Page\")\n\n**SurveyMonkey:** SurveyMonkey provides integrations with popular business applications, making it easier to sync survey data with your existing systems. It also offers collaboration features, allowing multiple users to collaborate on survey design and analysis.\n\n![Screenshot showing: SurveyMonkey's Integrations Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_8_3027b7b39a.png \"SurveyMonkey's Integrations Page\")\n\n### 5. Logic and Branching\n\n**Jotform:** Jotform allows you to create conditional logic and branching within your forms, enabling dynamic form experiences based on user responses.\n\n![Screenshot showing: Jotform's Logic and Branching Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_9_218b5881f1.png \"Jotform's Logic and Branching Features\")\n\n**SurveyMonkey:** SurveyMonkey offers skip logic and branching features to customize the survey flow based on participant responses.\n\n![Screenshot showing: SurveyMonkey's Logic and Branching Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_10_44c1794b9a.png \"SurveyMonkey's Logic and Branching Features\")\n\n### 6. Advanced Questionnaire Options\n\n**Jotform:** Jotform provides advanced questionnaire features such as question piping, prefilling form fields, and calculations based on user input.\n\n![Screenshot showing: Jotform's Advanced Questionnaire Options](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_11_0a7da673f1.png \"Jotform's Advanced Questionnaire Options\")\n\n**SurveyMonkey:** SurveyMonkey offers advanced features like question randomization, question validation, and custom survey URLs.\n\n![Screenshot showing: SurveyMonkey's Advanced Questionnaire Options](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_12_6b4e4e9fb5.png \"SurveyMonkey's Advanced Questionnaire Options\")\n\n![Infographic showing: Feature-Wise Comparison of Jotform and SurveyMonkey: 7. Submission Permissions: - Jotform: Set different submission permissions. - SurveyMonkey: Control user access to form submissions. 8. Response Collection Methods: - Jotform: Various methods like embedded forms, links, and more. - SurveyMonkey: Offers different response collection methods. 9. Data Analysis and Reporting: - Jotform: Basic reporting and data visualization. - SurveyMonkey: Advanced data analysis, filtering, and charts.](https://formester-strapi.s3.ap-south-1.amazonaws.com/feature_wise_comparison_of_jotform_and_surveymonkey_2_90e1c39637.png \"Feature-Wise Comparison of Jotform and SurveyMonkey: 7. Submission Permissions 8. Response Collection Methods 9. Data Analysis and Reporting\")\n\n### 7. Submission Permissions\n\n**Jotform:** Jotform allows you to set different submission permissions, including submit-only, submit and view, and submit and edit, giving you control over user access to form submissions.\n\n![Screenshot showing: Jotform's Submission Permissions](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_13_6d17dcc2bd.png \"Jotform's Submission Permissions\")\n\n**SurveyMonkey:** SurveyMonkey also allows you to control user access to form submissions, ensuring privacy and data security.\n\n![Screenshot showing: SurveyMonkey's Submission Permissions](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_14_ff108e985f.png \"SurveyMonkey's Submission Permissions\")\n\n### 8. Response Collection Methods\n\n**Jotform:** Jotform allows responses to be collected through embedded forms on websites, direct links, email invitations, QR codes, and social media.\n\n![Screenshot showing: Jotform's Response Collection Methods](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_15_12e9117317.png \"Jotform's Response Collection Methods\")\n\n**SurveyMonkey:** SurveyMonkey offers various response collection methods, including email invitations, web links, social media sharing, and embedding surveys on websites.\n\n![Screenshot showing: SurveyMonkey's Response Collection Methods](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_16_83ae5e21f3.png \"SurveyMonkey's Response Collection Methods\")\n\n### 9. Data Analysis and Reporting\n\n**Jotform:** Jotform provides basic data analysis and reporting capabilities including summary reports and data visualizations, allowing you to view form responses in a graphical form and export them. It offers visualizations and charts to help you analyze data at a glance, in real time. Advanced reporting features, however, are available with higher-tier plans.\n\n![Screenshot showing: Jotform's Data Analysis and Reporting ](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_17_e5c6d655c3.png \"Jotform's Data Analysis and Reporting \")\n\n**SurveyMonkey:** SurveyMonkey offers advanced data analysis and reporting features, including real-time results tracking, customizable dashboards, data filtering, cross-tabulation, trend analysis and custom charts.\n\n![Screenshot showing: SurveyMonkey's Data Analysis and Reporting ](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_18_86d928872f.png \"SurveyMonkey's Data Analysis and Reporting \")\n\n![Infographic showing: Feature-Wise Comparison of Jotform and SurveyMonkey: 10. Accessibility: - Jotform: Compliant with WCAG 2.1 guidelines. - SurveyMonkey: Offers accessibility features. 11. Survey Quotas and Sample Management: - Jotform: Set quotas and manage samples. - SurveyMonkey: Manage survey responses and participant demographics. 12. Data Security and Compliance: - Jotform: SSL encryption, GDPR, and HIPAA compliance. - SurveyMonkey: Follows data security practices and GDPR compliance.](https://formester-strapi.s3.ap-south-1.amazonaws.com/feature_wise_comparison_of_jotform_and_surveymonkey_3_a1173284e2.png \"Feature-Wise Comparison of Jotform and SurveyMonkey: 10. Accessibility 11. Survey Quotas and Sample Management 12. Data Security and Compliance\")\n\n### 10. Accessibility\n\n**Jotform:** Jotform provides accessibility features to ensure compliance with WCAG 2.1 guidelines, making surveys accessible to individuals who are specially-abled.\n\n![Screenshot showing: Jotform's Accessibility Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_19_e5f5ec2eb8.png \"Jotform's Accessibility Features\")\n\n**SurveyMonkey:** SurveyMonkey offers accessibility options, including screen reader compatibility and keyboard navigation support.\n\n![Screenshot showing: SurveyMonkey's Accessibility Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_20_291b6e33f7.png \"SurveyMonkey's Accessibility Features\")\n\n### 11. Survey Quotas and Sample Management\n\n**Jotform:** Jotform allows you to set response quotas and manage survey samples, ensuring control over the number of responses.\n\n![Screenshot showing: Jotform's Survey Quota Pop-up](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_21_ea03b37909.png \"Jotform's Survey Quota Pop-up\")\n\n**SurveyMonkey:** SurveyMonkey offers features for setting response quotas and managing survey samples, allowing you to control the number of responses and participant demographics.\n\n![Screenshot showing: SurveyMonkey's Survey Quotas' Options](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_22_a1c488e2c9.png \"SurveyMonkey's Survey Quotas' Options\")\n\n### 12. Data Security and Compliance\n\n**Jotform:** Jotform ensures data security with features such as SSL encryption, GDPR compliance, HIPAA compliance, and data backup options.\n\n![Screenshot showing: Jotform's Data Security and Compliance Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_23_a920e69d4d.png \"Jotform's Data Security and Compliance Features\")\n\n**SurveyMonkey:** SurveyMonkey also follows industry-standard data security practices and offers features like SSL encryption, GDPR compliance, and data anonymization.\n\n![Screenshot showing: SurveyMonkey's Data Security and Compliance Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_24_1729211b94.png \"SurveyMonkey's Data Security and Compliance Features\")\n\n![13. Form Templates: - Jotform: Over 10,000 templates, including surveys, contact forms. - SurveyMonkey: Over 250 templates, 20 free, categorized. 14. Support and Customer Service: - Jotform: Email support and knowledge base. - SurveyMonkey: Email and phone support, higher-tier with managers. 15. Plans & Pricing: - Jotform: Free plan, 4 paid tiers with varying features. - SurveyMonkey: Free Basic plan, multiple paid tiers and options.](https://formester-strapi.s3.ap-south-1.amazonaws.com/feature_wise_comparison_of_jotform_and_surveymonkey_4_932ad4112f.png \"13. Form Templates 14. Support and Customer Service 15. Plans & Pricing\")\n\n### 13. Form Templates\n\n**Jotform:** Jotform sets a pretty high in templates, offering over 10,000 online form templates, including surveys, contact forms, and payment forms, providing users with a wide range of options.\n\n![Screenshot showing: Jotform's Form Templates Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_25_273f9abe04.png \"Jotform's Form Templates Page\")\n\n**SurveyMonkey:** SurveyMonkey has over 250 templates, but only 20 are free to use. Templates are categorized into academic, marketing, quiz, events, and more.\n\n![Screenshot showing: SurveyMonkey's Form Templates Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_26_b770efc48d.png \"SurveyMonkey's Form Templates Page\")\n\n### 14. Support and Customer Service\n\n**Jotform:** Jotform offers customer support through email and an extensive knowledge base. Paid plans come with priority support and faster response times.\n\n![Screenshot showing: Jotform's Support and Customer Service Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_27_f400ccf75e.png \"Jotform's Support and Customer Service Page\")\n\n**SurveyMonkey:** SurveyMonkey provides support through email and phone, with higher-tier plans offering priority support and dedicated [customer success](https://www.custify.com/) managers.\n\n![Screenshot showing: SurveyMonkey's Support and Customer Service Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_28_595d5a6f1f.png \"SurveyMonkey's Support and Customer Service Page\")\n\n### 15. Plans & Pricing\n\n**Jotform:** Jotform offers a free plan that allows you to create upto 5 forms with 100 submissions, along with basic features per month. \n\nIt serves as a good starting point for users with basic form creation needs.\n\nPaid Plans: [Jotform offers 4 paid plans](https://www.jotform.com/pricing/) with additional features and benefits, with each upgrade. \n\n1. Bronze: $39/month, with upto 25 forms and 1000 submissions\n2. Silver: $49/month, with upto 50 forms and 2500 submissions\n3. Gold:  $129/month, with upto 100 forms and 10K submissions\n4. Enterprise: Customized Pricing\n\n   ![Screenshot showing: Jotform's Plans & Pricing Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_29_14156f4fe1.png \"Jotform's Plans & Pricing Page\")\n\n**SurveyMonkey:** SurveyMonkey offers a Basic plan for Free.\n\n[Paid plans are available under three main categories](https://www.surveymonkey.com/pricing/?ut_source=mp&ut_source2=analyze&ut_source3=desktop-standalone-link), with additional features and upgrades with every higher version. The said categories are as follows:\n\n1. Individual: Suitable for Individuals, such as Freelancers. It has 3 categories:\n\n* Standard Monthly: Starts at $46/month with upto 1000 responses \n* Advantage Annual:  Starts at $42/month with upto 5000 responses \n* Premier Annual: Starts at $116/month with upto 7500 responses \n\n2. Teams: Suitable for users who work in teams, it comes in 3 three versions:\n\n* Team Advantage Plan: Starts at $35/month with upto 10K responses \n* Team Premier Plan: Starts at $88/month with upto 15K responses \n\n(Note: Additional Responses can be bought at $0.80 each)\n\n3. Enterprise: Custom Pricing for Enterprises with specific requirements.\n\n   ![Screenshot showing: SurveyMonkey's Plans & Pricing Page](https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_30_d2993edf9c.png \"SurveyMonkey's Plans & Pricing Page\")\n\nWith the conclusion of the comparison;\n\nIt is important to discuss the Similarities between Jotform & SurveyMonkey to get a more all-rounded perspective.\n\n## Where do Jotform and SurveyMonkey overlap? \n\n![Infographic showing: Similarities between Jotform and SurveyMonkey: 1. Additional Features 2. Survey Translation and Localization 3. Respondent Experience 4. Validations](https://formester-strapi.s3.ap-south-1.amazonaws.com/similarities_between_jotform_and_surveymonkey_db737c42aa.png \"Similarities between Jotform and SurveyMonkey\")\n\n### 1. Additional Features\n\nBoth Jotform and SurveyMonkey offer additional features to enhance form and survey creation. Jotform provides conditional logic for dynamic form experiences, while SurveyMonkey offers the Question Bank with suggested questions for different survey categories.\n\n### 2. Survey Translation and Localization\n\nBoth platforms support survey translation and localization. Jotform allows the creation of multilingual surveys, while SurveyMonkey offers translation options for targeting respondents in different languages.\n\n### 3. Respondent Experience\n\nJotform and SurveyMonkey both focus on providing a user-friendly experience. Jotform ensures a seamless form-filling experience, while SurveyMonkey includes features like progress bars and validation messages to enhance respondent satisfaction.\n\n### 4. Validations\n\nBoth Jotform and SurveyMonkey prioritize data accuracy by offering robust validation options. With features like required fields and element-specific validations, these platforms ensure that the data collected through their forms and surveys is reliable and complete.\n\nIf you came here with a specific use-case in mind, let's make decision-making even easier for you.\n\nLet's dive into the...\n\n## Best Use-Cases and Limitations of Jotform and SurveyMonkey\n\n(so you know exactly what to choose!)\n\n### Best Use-cases of Jotform\n\n![Infographic showing: Best Use-cases of Jotform: 1. Simple Surveys and Feedback Forms 2. Event Registrations and RSVPs 3. Contact Forms and Lead Generation 4. Job Application Forms 5. Order and Payment Forms](https://formester-strapi.s3.ap-south-1.amazonaws.com/best_use_cases_of_jotform_jotform_vs_surveymonkey_e7f1d0d4cc.png \"Best Use-cases of Jotform\")\n\n#### 1. Simple Surveys and Feedback Forms\n\nJotform is well-suited for creating simple surveys and [feedback forms](/templates/categories/feedback-forms/) to gather valuable insights from customers, employees, or target audiences.\n\n#### 2. Event Registrations and RSVPs\n\nJotform can be used to create [event registration forms](/templates/event-registration-form-1827/) and RSVP forms, streamlining the process of managing attendee information and registrations.\n\n#### 3. Contact Forms and Lead Generation\n\nJotform is effective for creating contact forms and [lead generation forms](/templates/categories/lead-generation/), capturing customer inquiries and contact details for follow-up.\n\n#### 4. Job Application Forms\n\nJotform provides a user-friendly solution for creating [job application forms](/templates/job-application-form-699/), simplifying the hiring process and collecting applicant information efficiently.\n\n#### 5. Order and Payment Forms\n\nJotform enables businesses to create order forms and payment forms for online sales, making it convenient for customers to place orders and make secure payments.\n\n### Limitations of Jotform\n\n![Infographic showing: Limitations of Jotform: 1. Limited Advanced Analytics 2. Complex Logic Functionality 3. Limited Question Types 4. Limited Free Plan Features](https://formester-strapi.s3.ap-south-1.amazonaws.com/limitations_of_jotform_jotform_vs_surveymonkey_6e8926b9e3.png \"Limitations of Jotform\")\n\n#### 1. Limited Advanced Analytics\n\nJotform's analytics capabilities are not as robust compared to SurveyMonkey, with fewer options for in-depth data analysis and reporting.\n\n#### 2. Complex Logic Functionality\n\nJotform's conditional logic features, while useful for basic logic requirements, may not be as advanced or comprehensive as the logic capabilities provided by SurveyMonkey.\n\n#### 3. Limited Question Types\n\nJotform may have fewer question types available compared to SurveyMonkey, limiting the range of survey design options for certain specific research needs.\n\n### Best Use-cases of SurveyMonkey\n\n![Infographic showing: Best Use-cases of SurveyMonkey: 1. Market Research 2. Employee Feedback and Engagement Surveys 3. Event Feedback and Evaluation 4. Customer Experience Surveys 5. Employee Engagement Surveys](https://formester-strapi.s3.ap-south-1.amazonaws.com/best_use_cases_of_surveymonkey_jotform_vs_surveymonkey_ffcf5485fa.png \"Best Use-cases of SurveyMonkey\")\n\n#### 1. Market Research\n\nSurveyMonkey is an ideal tool for conducting market research surveys, allowing businesses to gather valuable insights on consumer preferences, market trends, and competitive analysis.\n\n#### 2. Employee Feedback and Engagement Surveys\n\nSurveyMonkey can be used to create employee feedback surveys and engagement surveys, fostering a culture of feedback and improving employee satisfaction.\n\n#### 3. Event Feedback and Evaluation\n\nSurveyMonkey is useful for gathering feedback and evaluations from event attendees, helping organizers improve future events and enhance the attendee experience.\n\n#### 4. Customer Experience Surveys\n\nSurveyMonkey excels in creating customer experience surveys to gather feedback and measure customer satisfaction. \n\nIt offers specialized features such as [Net Promoter Score (NPS) measurement](/templates/net-promoter-score-nps-702/), which helps businesses understand and improve customer loyalty and advocacy.\n\n#### 5. Employee Engagement Surveys\n\nSurveyMonkey provides powerful tools for conducting employee engagement surveys, enabling organizations to [assess employee satisfaction, identify areas for improvement, and drive employee engagement initiatives](/blog/employee-engagement-surveys-the-complete-guide-to-the-what-why-and-how/). It offers features like anonymity, question randomization, and customizable dashboards for analyzing and acting on employee feedback.\n\n### Limitations of SurveyMonkey\n\n![Infographic showing: Limitations of SurveyMonkey: 1. Limited Form Customization 2. Restrictive Response Limits 3. Limited Integration Options 4. Complexity for Basic Users](https://formester-strapi.s3.ap-south-1.amazonaws.com/limitations_of_surveymonkey_bc8391b10b.png \"Limitations of SurveyMonkey\")\n\n#### 1. Limited Form Customization\n\nSurveyMonkey's form customization options may not be as extensive as those offered by Jotform, making it less suitable for users requiring highly customized and branded survey designs.\n\n#### 2. Restrictive Response Limits\n\nSurveyMonkey imposes response limits on lower-priced plans, which can be a limitation for users who anticipate a high volume of survey responses.\n\n#### 3. Limited Integration Options\n\nWhile SurveyMonkey offers integrations with several popular third-party tools, the range of integrations may be more limited as compared to Jotform, potentially restricting data flow across different platforms.\n\n## The Final Verdict\n\nIn conclusion, the decision between Jotform and SurveyMonkey largely hinges on the specific needs and preferences of your business or organization.\n\nIf you require both surveys and web forms for various business processes, Jotform stands out with its customization capabilities and advanced features, catering to versatile form-building needs. \n\nWhile, its user-friendly interface, customization options and scope for personalization and branding, make it an ideal choice for  business web forms such as Contact Forms, [Registration Forms](/blog/registration-forms-101-definition-types-use-cases-more-how-to-create-free-template/), Subscription Forms, etc.;\n\nThe ability to include complex logic, seamless integration with third-party applications, flexibility and dynamism make it suitable for unique form requirements, including surveys, data collection, analysis, and reporting;\n\nOn the other hand, if your focus is primarily on surveys, SurveyMonkey emerges as the right choice. With its user-friendly interface and robust data analysis and reporting tools, it excels in gathering feedback and insights. The availability of free customizable surveys and paid options for advanced data analysis and representation makes it a reliable choice for survey-oriented endeavors.\n\nAlthough both platforms offer powerful features, they come with certain limitations. Jotform, while user-friendly, may present a learning curve when dealing with extensive surveys involving complex logic. Conversely, SurveyMonkey, while effective for survey creation, may not be the optimal solution for businesses requiring feature-rich web forms tailored to specific business processes.\n\nThat said, to end your quest for the best of both worlds, Formester is here!\n\nFormester empowers you to:\n\n1. Design [highly customized and personalized web forms, aligning with your branding](/features/branding-kit/) and catering to diverse business needs.\n2. Create complex Survey Forms with ease, [incorporating advanced logic](/features/conditional-logic/), while enjoying [seamless integration with a wide range of third-party platforms](/integrations/).\n3. Leverage [robust data analytics and reporting capabilities](/features/form-analytics/) to gain valuable insights from survey responses, supporting data-driven decision-making.\n4. Enjoy the simplicity and user-friendliness of Formester's interface while crafting intricate survey forms and accessing comprehensive data analytics.\n\nFormester offers the versatility and advanced customization options of Jotform, allowing users to create a wide range of forms, including [surveys](/templates/categories/survey-forms/), [contact forms](/templates/categories/contact-forms/), [payment forms](/blog/how-to-collect-payments-using-online-web-forms/), and more. With an [intuitive drag-and-drop interface](/) and [powerful conditional logic](/features/conditional-logic/) and [calculation fields](/features/calculating-fields/) Formester makes form-building a breeze for users with varying levels of technical expertise.\n\nAt the same time, Formester incorporates the user-friendly experience and robust data analysis capabilities of SurveyMonkey. It provides real-time tracking of survey responses, automatic results summaries, and various data export options, empowering users to gain valuable insights and make data-driven decisions.\n\nAdditionally, Formester goes a step further by offering unique features such as seamless integration with essential apps, [digital signature support](/features/electronic-signature/), and an [Information Recall feature](/features/information-recall/) that makes forms feel more dynamic and compelling.\n\nWhat’s more? A vast collection of [Templates for both Web Forms and Surveys](/templates/), catering to diverse needs and preferences!\n\n**With Formester, businesses can enjoy the best of both worlds – the versatility and customization of Jotform and the user-friendly survey features of SurveyMonkey – all in one comprehensive platform.** \\\nWhether you need to create complex forms, conduct in-depth surveys, or collect payments online, Formester is the ultimate solution for streamlining your data collection and form management processes.\n\nUnlock the full potential of your data collection and form-building with Formester. Experience a seamless blend of customization, simplicity, and advanced features – Sign-up on Formester for free, now!","2024-04-07T10:04:46.526Z","2024-08-23T09:22:47.170Z","2023-07-19T18:06:39.673Z","https://formester-strapi.s3.ap-south-1.amazonaws.com/jotform_vs_surveymonkey_forms_surveys_or_both_ece2630105.png",[],[158],{"id":159,"type":160},26,"{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What Sets Jotform Apart from SurveyMonkey?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"1. Versatility in Form Building Jotform offers a wide range of form-building options, catering to both simple and complex form requirements. With such a setup and capabilities, Jotform equips its users to create both, web forms that cater to diverse business processes, as well as surveys that allow for data collection and research. 2. Superior Customization With Jotform, you have extensive customization options, allowing you to tailor every aspect of your forms, including designs, themes, and branding to match and maintain your brand identity. 3. Advanced Form Features Jotform offers a plethora of advanced form features, such as conditional logic, payment processing, file uploads, calculations, multi-page forms, empowering you to create dynamic, interactive and personalized form experiences. Moreover, it also offers Form Analytics to derive meaningful insights from the submissions received. 4. Powerful Integrations Jotform provides seamless integrations with a wide range of third-party applications, enabling its users to connect their forms with other tools, services and systems to streamline workflows and enhance productivity. 5. Extensive Template Library Jotform boasts a vast collection of pre-designed form templates, spanning various industries and use cases, making it easy for its users to kickstart their form-building process, by making minor edits. 6. Collaboration and Workflow Management Jotform offers collaborative features, allowing multiple members of the same team to work together on form creation, share forms internally or with clients, and manage form submissions efficiently. These unique features make Jotform a standout choice for individuals and businesses seeking a versatile, collaborative, and secure form-building platform. Whether you're collecting customer feedback, conducting surveys, or automating workflows, Jotform has the tools and capabilities to meet your specific needs.\"}},{\"@type\":\"Question\",\"name\":\"What Sets SurveyMonkey Apart from Jotform?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"1. Extensive Survey Features SurveyMonkey is designed specifically for survey creation and offers a wide array of survey-specific features, including pre-built survey templates, question libraries, skip logic and randomization options, that help its users create engaging and interactive surveys. 2. AI-Powered Survey Expert SurveyMonkey's AI-powered survey expert, SurveyMonkey Genius, offers personalized recommendations, suggesting questions and responses to streamline survey creation. This feature evidently helps cut down user workload helping users create high-quality surveys in less time. 3. Powerful Data Analysis & Reporting SurveyMonkey's robust data analysis features, including automatic results summaries, customizable dashboards, and real-time tracking, allow users to gain valuable insights from their survey responses. Additionally, with the ability to apply filters and cross-tab reports, users can easily slice and dice data to uncover valuable insights. Also the various export options available, users can easily analyze and share their survey data for data-driven decision-making. 4. Market Research Solutions SurveyMonkey offers dedicated solutions for market research, making it an ideal choice for businesses looking to conduct professional market research surveys. Features like sample selection, demographic targeting, and statistical significance testing empower users to gather valuable insights for their research studies. 5. Integrated Survey Panel SurveyMonkey provides access to a large, diverse panel of survey respondents through its integrated survey panel feature. This allows users to reach a wider audience and obtain representative data for their surveys, thereby enhancing the reliability and accuracy of research findings. 6. Branding, Customization, and Ease of Use With SurveyMonkey, users can easily customize their surveys to match their brand's visual style, using features like adding logos, brand colors, custom themes, and templates. Moreover, the user-friendly interface and intuitive survey creation process make it accessible to users of all levels of technical expertise. These unique features and capabilities make SurveyMonkey a preferred choice for individuals, businesses, and researchers seeking a dedicated surveying platform.\"}},{\"@type\":\"Question\",\"name\":\"Where do Jotform and SurveyMonkey overlap?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Similarities between Jotform and SurveyMonkey: 1. Additional Features Both Jotform and SurveyMonkey offer additional features to enhance form and survey creation. Jotform provides conditional logic for dynamic form experiences, while SurveyMonkey offers the Question Bank with suggested questions for different survey categories. 2. Survey Translation and Localization Both platforms support survey translation and localization. Jotform allows the creation of multilingual surveys, while SurveyMonkey offers translation options for targeting respondents in different languages. 3. Respondent Experience Jotform and SurveyMonkey both focus on providing a user-friendly experience. Jotform ensures a seamless form-filling experience, while SurveyMonkey includes features like progress bars and validation messages to enhance respondent satisfaction. 4. Validations Both Jotform and SurveyMonkey prioritize data accuracy by offering robust validation options. With features like required fields and element-specific validations, these platforms ensure that the data collected through their forms and surveys is reliable and complete.\"}},{\"@type\":\"Question\",\"name\":\"What all can Jotform be used for?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Best Use-cases of Jotform 1. Simple Surveys and Feedback Forms Jotform is well-suited for creating simple surveys and feedback forms to gather valuable insights from customers, employees, or target audiences. 2. Event Registrations and RSVPs Jotform can be used to create event registration forms and RSVP forms, streamlining the process of managing attendee information and registrations. 3. Contact Forms and Lead Generation Jotform is effective for creating contact forms and lead generation forms, capturing customer inquiries and contact details for follow-up. 4. Job Application Forms Jotform provides a user-friendly solution for creating job application forms, simplifying the hiring process and collecting applicant information efficiently. 5. Order and Payment Forms Jotform enables businesses to create order forms and payment forms for online sales, making it convenient for customers to place orders and make secure payments.\"}},{\"@type\":\"Question\",\"name\":\"What are the limitations of Jotform?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Limitations of Jotform 1. Limited Advanced Analytics Jotform's analytics capabilities are not as robust compared to SurveyMonkey, with fewer options for in-depth data analysis and reporting. 2. Complex Logic Functionality Jotform's conditional logic features, while useful for basic logic requirements, may not be as advanced or comprehensive as the logic capabilities provided by SurveyMonkey. 3. Limited Question Types Jotform may have fewer question types available compared to SurveyMonkey, limiting the range of survey design options for certain specific research needs.\"}},{\"@type\":\"Question\",\"name\":\"What all can SurveyMonkey be used for?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Best Use-cases of SurveyMonkey 1. Market Research SurveyMonkey is an ideal tool for conducting market research surveys, allowing businesses to gather valuable insights on consumer preferences, market trends, and competitive analysis. 2. Employee Feedback and Engagement Surveys SurveyMonkey can be used to create employee feedback surveys and engagement surveys, fostering a culture of feedback and improving employee satisfaction. 3. Event Feedback and Evaluation SurveyMonkey is useful for gathering feedback and evaluations from event attendees, helping organizers improve future events and enhance the attendee experience. 4. Customer Experience Surveys SurveyMonkey excels in creating customer experience surveys to gather feedback and measure customer satisfaction. It offers specialized features such as Net Promoter Score (NPS) measurement, which helps businesses understand and improve customer loyalty and advocacy. 5. Employee Engagement Surveys SurveyMonkey provides powerful tools for conducting employee engagement surveys, enabling organizations to assess employee satisfaction, identify areas for improvement, and drive employee engagement initiatives. It offers features like anonymity, question randomization, and customizable dashboards for analyzing and acting on employee feedback.\"}},{\"@type\":\"Question\",\"name\":\"What are the limitations of SurveyMonkey?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Limitations of SurveyMonkey 1. Limited Form Customization SurveyMonkey's form customization options may not be as extensive as those offered by Jotform, making it less suitable for users requiring highly customized and branded survey designs. 2. Restrictive Response Limits SurveyMonkey imposes response limits on lower-priced plans, which can be a limitation for users who anticipate a high volume of survey responses. 3. Limited Integration Options While SurveyMonkey offers integrations with several popular third-party tools, the range of integrations may be more limited as compared to Jotform, potentially restricting data flow across different platforms.\"}}]}",53,{"text":163},"21 min read",{"title":165,"description":166,"metaTitle":167,"metaDescription":168,"keywords":169,"author":170,"authorProfile":171,"coverImgAlt":172,"featured":12,"slug":173,"body":174,"createdAt":175,"updatedAt":176,"publishedAt":177,"coverImg":178,"metaImage":179,"schema":180,"id":181,"coverImgWidth":121,"coverImgHeight":122,"readingStats":182},"10 Essential Marketing ROI Metrics you can’t ignore","Learn to improve your marketing ROI by tracking these 10 vital marketing metrics. Gain better results, more profit, and optimize your strategy.","10 Key Marketing ROI Metrics You Must Track","Find out how to improve your marketing ROI by tracking these 10 key marketing performance indicators. Get better results, more profitability, and drive growth.","marketing roi, marketing metrics, marketing performance indicators, marketing kpis ","Siddharth Sharma","","an illustration of marketing roi metrics","10-essential-marketing-roi-metrics-you-cant-ignore","## Why to focus on key metrics for measuring Digital Marketing success?\n\nThe gradual shift to digital marketing has rapidly accelerated in recent times, particularly propelled by events like the COVID-19 pandemic and the boom in creator economy, has brought about a plethora of data and analytics tools. Navigating through this sea of data can be daunting, but it's crucial for marketers to identify and track the key metrics that truly matter. In this article, we'll look at 10 essential metrics that can help marketers effectively measure the ROI of their digital marketing efforts.\n\n### \\#1 Cost Per Lead (CPL)\n\nOne fundamental metric for assessing the effectiveness of your digital marketing campaigns is the cost per lead (CPL). By calculating how much you're spending for each generated lead, you gain valuable insights into the efficiency of your marketing efforts. A high CPL relative to your conversion rates may indicate the need for strategic adjustments or reallocation of budget.\n\n### \\#2 Lead Close Rate\n\nTracking the rate at which leads are converted into customers is vital for evaluating the overall success of your marketing and sales funnel. By aligning online lead generation data with offline sales data, you can effectively gauge the performance of your digital marketing initiatives and identify areas for improvement.\n\n### \\#3 Cost Per Acquisition (CPA)\n\nBuilding upon insights from CPL and lead close rates, calculating the cost per acquisition provides a clear picture of how much it costs to acquire a new customer. This metric is instrumental in optimizing marketing budgets and refining targeting strategies to maximize ROI.\n\n### \\#4 Average Order Value (AOV)\n\nWhile increasing the number of orders is desirable, monitoring the average order value can uncover opportunities for revenue growth. By focusing on tactics that drive up AOV, such as upselling or enhancing user experience, marketers can boost profitability without necessarily increasing customer acquisition costs.\n\n### \\#5 Conversion Rates by Channel and Device\n\nUnderstanding conversion rates across different marketing channels and device types is crucial for optimizing resource allocation and campaign targeting. By identifying high-performing channels and devices, marketers can fine-tune their strategies to capitalize on areas of opportunity and maximize ROI.\n\n### \\#6 Exit Rate and Blog Click-Through Rates\n\nAnalyzing exit rates from landing pages and click-through rates from blogs provides valuable insights into user engagement and content effectiveness. By optimizing underperforming pages and leveraging blogs to drive traffic to key conversion points, marketers can enhance overall campaign performance.\n\n### \\#7 Customer Lifetime Value (CLV) and Net Promoter Score (NPS)\n\nMeasuring CLV and NPS enables marketers to assess long-term profitability and customer satisfaction, respectively. By understanding the lifetime value of customers and their likelihood to recommend products or services, marketers can prioritize efforts that foster loyalty and drive sustainable growth.\n\n### \\#8 Time Invested in Projects/Campaigns\n\nEfficient allocation of resources is essential for maximizing ROI on marketing initiatives. By evaluating the time invested in projects relative to their returns, marketers can optimize resource allocation and ensure that efforts are aligned with strategic objectives.\n\n### \\#9 Traffic to Lead Ratio and Return on Ad Spend (ROAS)\n\nAnalyzing the ratio of website traffic to generated leads and measuring ROAS provides valuable insights into the effectiveness of marketing campaigns and advertising investments. By optimizing conversion funnels and refining ad targeting strategies, marketers can enhance campaign performance and maximize ROI.\n\nTo support these efforts, \u003Ca href =\"https://netnut.io/residential-proxies/\">residential proxies\u003C/a>  are commonly used in ad verification to ensure that ads are being served correctly to real users in different locations, helping validate impressions and clicks, detect ad fraud, and ultimately ensuring that performance data reflects true user engagement—critical for making informed, ROI-driven decisions. \n\nMarketers looking for reliable options often turn to platforms like \u003Ca href=\"https://proxy.coupons/best-residential-proxies/\">ProxyCoupons\u003C/a> to compare and choose the best residential proxies for accurate campaign tracking and fraud prevention.\n\n### \\#10 Overall Revenue and Customer Retention Rate\n\nFinally, tracking overall revenue and customer retention rates is essential for assessing the holistic impact of marketing efforts on business performance. By focusing on strategies that drive revenue growth and foster customer loyalty, marketers can achieve sustainable long-term success.\n\nAny person who has worked in marketing long enough, understands that Marketing is not just about coming up with creative campaign ideas and executing. Marketing is a process which needs constant realignment and pivoting based on the [data collected from campaign metrics](/blog/top-10-video-marketing-trends-in-2024/). It does not matter how much money you pour into a marketing campaign if there are no actionable insights derived. So go through the metrics stated in this article thoroughly and feel free to create your own KPIs to boost the results of your marketing campaigns.","2024-04-07T10:04:29.315Z","2025-12-24T05:14:20.039Z","2024-03-08T06:37:04.580Z","https://formester-strapi.s3.ap-south-1.amazonaws.com/marketing_kpi_blog_a705fc13d7.png",[],[],4,{"text":183},"4 min read",1781512974885]