Blog
-
Form honeypot technique that holds up
The form honeypot technique explained: how to hide the field from humans but not bots, why display:none is weak, and how to avoid autofill false positives.
-
Send email from an HTML form without a backend
Send email from an HTML form without a backend: why mailto: fails, what serverless and host forms cost, and working code for the endpoint pattern.
-
Jamstack forms: 3 ways to handle submissions
Jamstack forms compared: host-captured (Netlify-style), embedded widgets, and form backends — real tradeoffs and the pattern that stays portable.
-
reCAPTCHA vs hCaptcha vs Turnstile compared
reCAPTCHA vs hCaptcha vs Turnstile: how each verifies humans, what each collects, UX friction and pricing — pick the right challenge for your forms.
-
How to add a contact form to a static site
Static site contact form, done properly: accessible copy-paste HTML, honeypot spam protection, a redirect after submit, and where the data ends up.
-
Stop contact form spam without punishing visitors
Stop contact form spam with an escalation ladder that starts invisible — honeypot, rate limits, time traps — before any CAPTCHA. What each layer stops.
-
Introducing FormWire: form submissions you can query
FormWire turns any HTML form POST into an email in your inbox and a record you can query, with no server and no backend code. Here's what we built and why.