FreelyForm

Static sites

A form backend for static sites and landing pages.

Add a working contact, quote, or waitlist form to a site with no server process. Change the action attribute and keep the rest of the page.

Why static forms break

A static host serves files; it does not run a mailer or write to a database. The usual workaround is a serverless function plus an email API, which adds a deployment surface, secrets, and a place for failures to hide.

A hosted form backend moves that work to one endpoint. The page still belongs to your static site, but the submission is validated, stored, and delivered by a service built for that job.

The minimal integration

HTML
<form action="https://freelyform.com/f/FORM_ID" method="POST">
  <label for="name">Name</label>
  <input id="name" name="name" required>

  <label for="email">Email</label>
  <input id="email" name="email" type="email" required>

  <label for="message">Message</label>
  <textarea id="message" name="message" required></textarea>

  <button type="submit">Send</button>
</form>

Create the form in the dashboard, verify the recipient inbox, and replace FORM_ID. The endpoint accepts the post and returns a success page or a redirect, depending on the form settings.

Host notes

  • GitHub Pages: no server code required; a native form post works as-is.
  • Cloudflare Pages and Netlify: no function is needed for the form itself, though you can still add one for other logic.
  • Vercel: useful when the rest of the app is static or client-rendered; the endpoint removes the need for a form-specific route.
  • Astro, Hugo, and Jekyll: keep the form in a partial or shortcode and set the action once.

What to configure before launch

  • Add the production domain to the origin allowlist if you submit with JavaScript.
  • Verify every recipient; pending submissions are held until the inbox is confirmed.
  • Turn on a honeypot field and consider Turnstile for public forms.
  • Set a success message or redirect so visitors do not land on a blank response.
  • Check the delivery record after the first real submission.

Static site form questions

Does a static site need a serverless function for forms?

Not necessarily. A native HTML form can post directly to a hosted endpoint. That avoids writing and deploying a function, but it also means the endpoint must validate and protect the form for you.

Do I need JavaScript for the form to work?

No. A standard form action and method work without JavaScript. Add the optional embed script only if you want inline success and error messages instead of a redirect.

Will CORS block a native HTML form?

No. Native form posts are not subject to the same CORS preflight rules as fetch. If you submit with JavaScript, add your site to the form origin allowlist.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID