To handle forms on a Netlify static site with FormSubmit, set the form's action to your FormSubmit endpoint and make sure it doesn't have a data-netlify attribute. The site stays static; FormSubmit receives submissions, emails you and forwards them to integrations.
Steps
- Create a FormSubmit form.
- Update your form:
<form action="https://formsubmit.app/f/YOUR_FORM_ID" method="POST">
<!-- your fields -->
<input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>- Remove
data-netlify="true"andnetlify-honeypotattributes if they exist — otherwise Netlify's build step will rewrite the form. - Deploy, then add
your-site.netlify.app, deploy-preview domains (*.netlify.app) and your custom domain to the allowlist.
Framework sites
The same approach works for Next.js, Astro, Gatsby, Hugo, Eleventy and SvelteKit on Netlify — see the framework guides.
Why a host-independent backend?
Your form keeps working if you move from Netlify to Vercel, Cloudflare Pages or GitHub Pages, and every site you build uses the same dashboard, integrations and spam protection. For a feature-by-feature look, read FormSubmit vs Netlify Forms.