Blog
What is a form backend? (And when you need one)
· 3 min read
A form backend is a hosted service that receives your website's form submissions so you don't have to run a server. Your HTML form POSTs to the service's endpoint; the service validates the request, filters spam, stores the submission, and notifies you. Your site stays completely static.
The problem it solves
HTML forms are the one part of a static site that can't be static. A <form> element needs somewhere to send its data, and browsers can only POST to a URL. Historically that meant running a server - PHP scripts, a Node app, or later a serverless function - plus everything that comes with it: spam filtering, storage, email delivery, uptime.
A form backend replaces all of that with one attribute:
<form action="https://formhook.app/f/fh_your-key" method="POST">That's the entire integration. The rest - parsing, spam protection, storage, notifications - happens on the service's side.
What a good form backend handles for you
- Receiving and parsing - form-encoded, JSON, and multipart submissions
- Spam protection - honeypot fields, rate limiting, and challenges like Cloudflare Turnstile
- Storage - submissions in a dashboard you can search and export
- Notifications - email or, better, native push notifications the moment something arrives
- Security - CORS allowlists, validated redirects, TLS
When you need one
You need a form backend if any of these describe your project:
- Your site is static - GitHub Pages, Cloudflare Pages, an Nginx-served export, Hugo, Astro, plain HTML. There's no server to receive the POST.
- You don't want to maintain a receiver - even on sites with servers, a contact endpoint is undifferentiated plumbing that needs spam filtering and monitoring forever.
- You want submissions in one place - searchable, exportable, and pushed to your phone, rather than scattered across inboxes.
When you don't
If you already run a full application server and the form feeds directly into your own database and business logic, a hosted backend is an extra hop you may not need. A form backend earns its place when the form is a side quest - a contact or enquiry form bolted onto an otherwise static or content-driven site.
What to check before you pick one
The category looks interchangeable from the outside; the differences show up after you've shipped. Four questions worth asking of any provider, including ours:
- What is the free tier for? Some are positioned explicitly for testing and development, not production. Formhook's free tier is built for real sites - 250 submissions a month, kept forever.
- How long are submissions retained? A lead that auto-deletes after 30 days is a lead your client loses. Find the retention policy in writing.
- Where does the data physically live? For EU sites, a US-hosted processor pulls the whole data-transfer question into your privacy policy. Formhook stores submissions in Germany.
- Can you export everything? If leaving requires begging support for a data dump, don't enter.
Once those check out, integration really is the one line above. See the docs for the full field reference, or the framework guides for a copy-paste snippet in Astro, Next.js, Hugo, and more.
Ship a working form in one line
EU-hosted, submissions kept forever, push notifications on every tier.
Start freeNo credit card · read the docs
Keep reading
- How to add a contact form to GitHub PagesGitHub Pages can't run server code, but you can still have a working contact form. Three approaches compared, with a copy-paste solution that takes a minute.
- Mailto links vs contact forms: which loses fewer leads?Mailto links fail silently without a mail client and expose your address to spam bots. When a mailto is fine, and when a contact form pays for itself.
- Contact form spam: honeypots, rate limits & TurnstileHow form spam actually works and the three layers that stop it: honeypot fields, rate limiting, and Cloudflare Turnstile - without punishing real visitors.