Platforms / Cloudflare Pages

Contact form for Cloudflare Pages — no Workers required

Pages is static. Workers for mail is overkill for a contact form. Turnstile is already in your Cloudflare account.

Setup

  1. Deploy static assets to Pages.
  2. Create a FormHeron form.
  3. Optional: create a Turnstile widget and paste keys into FormHeron form settings.
  4. Embed the form with honeypot.

Working example

contact.html
<form action="https://formheron.com/f/YOUR_KEY" method="POST">
  <label>
    Email
    <input type="email" name="email" required />
  </label>
  <label>
    Message
    <textarea name="message" required></textarea>
  </label>
  <!-- honeypot: off-screen, not type=hidden -->
  <input type="text" name="_hp" tabindex="-1" autocomplete="off"
         aria-hidden="true" style="position:absolute;left:-9999px" />
  <button type="submit">Send</button>
</form>

Common problems

Workers for form handling

Not required. FormHeron stores leads and sends email.

Turnstile siteverify

FormHeron verifies with your secret server-side. Never ship the secret to Pages.

Custom domains

Add the custom domain to the origin allowlist.

FAQ

How do I add a contact form on Cloudflare Pages?

Static HTML form posting to FormHeron. Optional Turnstile with your keys.

Is Turnstile free?

Cloudflare Turnstile is free; you bring your own keys into FormHeron.

Data location?

Submission database in Amsterdam. Email and support operations from India.

Related platforms