Form backend notes
Practical guides — no feature claims we do not ship.
2026-08-01
How to add a contact form to a static site
Add a working contact form to Hugo, Astro, Eleventy or plain HTML — no PHP or serverless. Markup, honeypot, spam limits, and FormHeron setup.
2026-08-01
Contact form without a backend
Ship a production contact form with no server of your own. What a form backend must provide, what to avoid, and a working copy-paste example.
2026-08-01
How to stop contact form spam
Stop contact form spam with honeypots, atomic rate limits, and Cloudflare Turnstile. Why spam must never spend quota, plus a safe test plan.
2026-08-01
Honeypot vs reCAPTCHA for form spam
Compare honeypots vs reCAPTCHA vs Cloudflare Turnstile for contact form spam: privacy, UX trade-offs, and why FormHeron skips reCAPTCHA entirely.
2026-08-01
How to verify FormHeron webhook signatures
Verify FormHeron HMAC-SHA256 webhook signatures in Node, Python and PHP — headers, raw body rules, retries, and constant-time safe compares.
2026-08-01
Send form submissions to Slack
Send FormHeron contact form submissions into Slack with incoming webhooks: setup steps, encryption at rest, host rules, and 4xx auto-disable.
2026-08-01
Send form submissions to Google Sheets
Push FormHeron form leads into Google Sheets using signed webhooks plus Zapier or Make: mapping tips, idempotency handling, and security notes.
2026-08-01
GDPR and contact forms: what you actually need
What GDPR requires for contact forms without marketing badges: roles, EU storage, India ops, DPA language, retention windows, and no raw IPs.
2026-08-01
Next.js contact form with Server Actions
Build a Next.js App Router contact form with FormHeron: plain form action versus Server Action, honeypot field, JSON fetch, and origin lists.
2026-08-01
Do you need a DPA for your contact form?
When agencies need a DPA for their contact form backend, what the agreement must cover, and how FormHeron documents EU storage and India ops.