Guide

A form backend for static and exported sites

A static site has no server to handle a POST, so the form must submit somewhere external. That part is easy. The part that catches people is that a statically exported page can drift from the source it was built from, and drift silently.

Why exported sites break in their own way

When a WordPress site is exported to static files, what goes live is a snapshot. Fix a form in the CMS and nothing changes for visitors until the next export runs. A fix can sit in the source for weeks, believed live, doing nothing.

Optimisation makes it worse: minifiers rewrite attributes and strip quotes, and inline scripts are frequently deferred or dropped. Anything depending on a script that no longer loads stops working on the exported copy only.

Check: Always verify on the live exported URL. A staging check proves nothing about what shipped.

Spam protection is the usual casualty

If a form expects a spam token but the script that generates it did not survive export, every genuine submission arrives without a token and is refused. The visitor sees a failure; you see silence.

This is why we hold token-less submissions from trusted origins for review instead of discarding them. A refusal that destroys the evidence makes the fault unprovable and the lead unrecoverable.

What to check after every export

Confirm the form still points at the right endpoint, that every field still has a name attribute, that the spam script is present on the exported page, and that a real submission from the live URL arrives.

Doing this by hand after every deploy is exactly the sort of task that gets skipped on a busy week, which is why we automate it.

Check: FormHam checks the live exported page nightly and flags the ones that can no longer submit.

Works with any HTML form on any host — exported WordPress, Astro, Hugo, Eleventy, plain hand-written HTML. If it can POST, it can be watched.


Frequently asked

Does this work without WordPress?
Yes. Any HTML form can post to the endpoint. The WordPress plugin is a convenience, not a requirement.
Why did my form break after adding a CDN?
Usually caching or minification: an old copy of the page is still being served, or an optimiser altered attributes and dropped an inline script the form depended on.
Can you handle file uploads?
Not yet — it is built but deliberately switched off until the storage and virus-scanning side is finished properly. We would rather say no than lose a CV.

Want us to check it for you?

We will test every form on your site and tell you exactly what we find. If nothing is wrong, we will say so.

Talk to us