Static sites are fantastic: fast, cheap to host, secure, and dead simple to deploy. Then a client says "can visitors email us from the site?" and suddenly you're staring at the one thing a static site can't do on its own: receive a form submission.
The good news is you don't need a backend or server to do this. By the end of this guide you'll have a fully working, accessible, spam-resistant contact form you can drop into plain HTML, React, Next.js, Vue, Astro, or Svelte, with complete copy-paste code, not placeholders.
Let's start by being honest about your options.
Full disclosure
I work with Formpaste, one of the form-backend services covered below, so I'll use it in the hands-on examples. I've kept the comparison section genuinely even-handed. The techniques here work with any provider, and I'll tell you where each one fits.






