Code components want a real endpoint
Once a form lives in your own React code component, native handling is out of frame anyway. Furrow gives it a first-class backend: JSON responses, honeypot, Turnstile, rate limits.
Hosts & site builders · works with Furrow Forms
For code components and owned pipelines beyond the native form block.
paste this into your agent
Fetch furrowforms.com/ai and set up a contact form backend for my Framer site.agent-readable recipe: /forms-for/framer.md
prefer clicking? start in the dashboard
export default function ContactForm() {
const loadedAt = Date.now();
async function submit(e) {
e.preventDefault();
const res = await fetch('https://api.furrowforms.com/s/fp_k7m2', {
method: 'POST',
body: new FormData(e.target),
});
if ((await res.json()).ok) e.target.reset();
}
return (
<form onSubmit={submit}>
<input type="text" name="_gotcha" style={{ display: 'none' }} tabIndex={-1} />
<input type="hidden" name="_ft" value={loadedAt} />
<input name="email" type="email" required />
<textarea name="message" required />
<button>Send</button>
</form>
);
}The gap
Framer has grown real native form handling, and for a standard contact block on a Framer-hosted site it is the path of least resistance. The cases that outgrow it look familiar: you build custom code components and want the form logic in your own React; you need submissions in your own pipeline with verifiable delivery, not just a dashboard; or Framer is one property in a portfolio whose forms you want managed from a single control plane. Furrow Forms covers those: a code component POSTs to your endpoint, and storage, spam, notifications, and HMAC-signed webhooks are handled — same as every other site you run.
Once a form lives in your own React code component, native handling is out of frame anyway. Furrow gives it a first-class backend: JSON responses, honeypot, Turnstile, rate limits.
Furrow delivers submissions by signed, retried webhooks to endpoints you control, with a delivery log — submissions become events in your systems, not rows in someone’s dashboard.
If Framer sits beside Webflow, Astro, and client sites, Furrow’s client → project hierarchy manages all their forms with inherited settings and one API.
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 Framer site.free tier: 100 subs/mo · unlimited forms · full API + MCP · pricing →
FAQ
Yes — build the form as a code component that POSTs its FormData to a Furrow Forms endpoint. Furrow filters spam, stores submissions, sends notifications, and delivers signed webhooks; the component stays ordinary React.
Use native forms for a standard block on a single Framer site. Furrow is for custom code components, submissions you need in your own systems with verified (HMAC-signed, retried) delivery, and portfolios where form settings should be managed centrally over an API.
Yes — the honeypot is just a hidden field in your component, and Turnstile renders like any script-backed widget. Both verify on Furrow’s side with keys configured once at the project level.
paste this into your agent
Fetch furrowforms.com/ai and set up forms for this site.