send.webforms.toRead the docs →

What Is a Form Backend?

A form backend is a hosted service that receives submissions from an HTML form, stores them, checks them for spam and delivers them somewhere useful such as an inbox, a chat channel or a webhook. It replaces the small server you would otherwise write and maintain yourself.

The reason form backends exist is that the code involved is short, boring and easy to get wrong. Accepting a POST takes a few lines. Doing it safely takes considerably more: validating the payload, stopping bots, sending mail that does not land in the junk folder, retrying a delivery that failed, keeping the data somewhere you can search later, and deleting it on schedule when someone asks you to.

The giveaway that you need one is a static site. A site built with Astro, Hugo, Eleventy or a plain HTML template has no server to post to, so a form on it has nowhere to send anything. The same applies to a site on GitHub Pages or an S3 bucket.

What a form backend is not is a form builder. A builder gives you a drag-and-drop editor and hosts the form itself. A backend takes the form you already wrote and handles what happens after someone presses send. If you want the editor, you want a builder.

In WebForms

A WebForms endpoint is a URL you put in the form's action attribute. Nothing else about the form changes, which is why migrating between backends is usually a one-line edit.

More terms