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
- Deploy static assets to Pages.
- Create a FormHeron form.
- Optional: create a Turnstile widget and paste keys into FormHeron form settings.
- Embed the form with honeypot.
Working example
<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.