The Simplest Way to Add a Contact Form to a Static Site
Static sites can't process form posts on their own. Here's how to add a working contact form to a plain HTML or JAMstack site without standing up a backend.
Jason Warner
July 1, 2026
The Simplest Way to Add a Contact Form to a Static Site
Static sites are fast, cheap, and easy to deploy — right up until you need a contact form. A plain HTML page has nowhere to send a form post, so the classic answer was to spin up a tiny backend just to catch one form. That is a lot of moving parts for a Contact Us page.
Point the Form at a Hosted Endpoint
The modern approach is to let a hosted form backend receive the submission for you. You create a form, get a unique URL, and set it as the form action:
<form action="https://api.bluejayrelay.com/f/frm_yourtoken" method="POST">
<input name="email" type="email" required>
<textarea name="message"></textarea>
<button type="submit">Send</button>
</form>
That is the whole integration. No server, no serverless function, no database. When someone submits, the endpoint stores the submission and emails you.
What You Get Without Writing Backend Code
A good hosted form endpoint handles the parts you would otherwise build yourself: spam filtering, per-IP rate limiting, an allowlist of which sites may post to the form, and a redirect back to a thank-you page after submit. You also get a dashboard of every submission and a CSV export when you need the data elsewhere.
When to Use It
If your site is on Netlify, Vercel, GitHub Pages, or any static host, a hosted form endpoint is almost always the right call for contact forms, waitlists, and simple lead capture. You keep your fast static site and add exactly one feature — a form that works.
Ship a contact form in five minutes. Start free with Bluejay Forms — two forms and 100 submissions a month on the free plan.
Build more reliable webhook workflows.
Capture, transform, and retry webhooks with full observability. Free to start, no credit card.