The Pages Function you’d rather not own
Form handling as custom Worker code means validation, spam, email, and storage are now your uptime problem. Furrow packages them behind one endpoint with a delivery log.
Hosts & site builders · works with Furrow Forms
Skip the DIY Pages Function — Turnstile support is already built in.
paste this into your agent
Fetch furrowforms.com/ai and set up a contact form backend for my Cloudflare Pages site.agent-readable recipe: /forms-for/cloudflare-pages.md
prefer clicking? start in the dashboard
<form action="https://api.furrowforms.com/s/fp_k7m2" method="POST">
<input type="text" name="_gotcha" style="display:none" tabindex="-1" />
<input type="hidden" name="_ft" value="" />
<script>document.currentScript.previousElementSibling.value = Date.now();</script>
<input name="name" type="text" required />
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<div class="cf-turnstile" data-sitekey="0x4AAA…"></div>
<button>Send</button>
</form>The gap
Cloudflare Pages serves static sites brilliantly and offers no form handling of its own. The documented DIY route — write a Pages Function, validate a Turnstile token, call an email API, add your own storage and rate limiting — is a genuinely educational afternoon that then becomes production code you own. Furrow Forms is that stack as a service, and it speaks Cloudflare’s language: Turnstile is Furrow’s first-class captcha, configured once with your project’s keys and inherited by every form. Your Pages deployment stays purely static; the form just works.
Form handling as custom Worker code means validation, spam, email, and storage are now your uptime problem. Furrow packages them behind one endpoint with a delivery log.
Furrow supports Cloudflare Turnstile natively — project-level keys, widget included in generated snippets. The spam stack matches the platform you chose.
Reliable notification email means wiring and monitoring a third-party mail API. Furrow sends notifications with template tokens on every tier, no provider account needed.
Two ways in
Furrow’s whole control plane is an API and MCP server. Paste this prompt into Claude Code, Cursor, or any agent — it does the rest:
paste this into your agent
Fetch furrowforms.com/ai and set up a contact form backend for my Cloudflare Pages site.free tier: 100 subs/mo · unlimited forms · full API + MCP · pricing →
FAQ
Point a plain HTML form at a Furrow Forms endpoint — no Pages Function required. Furrow filters spam (including native Cloudflare Turnstile verification with your project’s keys), stores the submission, emails you, and redirects the visitor.
You can — Cloudflare even documents the pattern. But the Function needs spam logic, an email provider, storage, and rate limiting, and then it needs maintaining. A form backend collapses all of it into an endpoint with delivery guarantees.
Yes — Turnstile is Furrow’s built-in captcha. Set the site and secret keys once at the project level; every form under the project verifies tokens automatically, and generated snippets include the widget markup.
paste this into your agent
Fetch furrowforms.com/ai and set up forms for this site.