How many people tried to hire me last month? I genuinely don’t know, and that’s the problem.
For some stretch of time I can’t measure, my contact form was quietly eating enquiries. Not bouncing them with a visible error a sender could see and retry. It accepted the message and showed the sender a thank-you. That was the last anyone saw of it. I found out this week. I still can’t tell you how long it ran.
That was the shape of the week. Three tracks, one of them a small horror. Here is how it went.
The contact form that filed real people under “bot”
My contact form had a honeypot: a hidden field no human sees, that only an automated bot would fill in. Fill it and you’re a bot, and your message gets binned. Standard stuff. I had hidden the field with a CSS clip trick so it stayed invisible without technically being display:none, which some bots check for.
Here is the part that stings. Browsers with autofill turned on saw a form field, decided it looked fillable, and helpfully filled it. So the humans most likely to trip my trap were the ones letting their browser do the typing for them. Their messages looked exactly like bot traffic. Binned, silently, before the database, before any email went out.
The fix was small and slightly humiliating. I moved the field to display:none and gave it a boring neutral name instead of something a browser might recognize. I did the same to the rescue form while I was in there. I tested it end to end this time, real submission, real inbox. The autofill had been doing its job perfectly the whole time. I had just built a trap that couldn’t tell a robot from someone whose browser remembers their name. If you have tried to reach me through the contact form and heard nothing back, now you know why, and I’m sorry.
Nine WordPress pull requests, and the reviews that pushed back
Away from my own mess, a calmer track: nine pull requests across the WordPress ecosystem, each one written and run through my own gate before it left. wp-mail-logging, ClassifAI, Elementor, three for Sensei (one, two, three), Newspack, H5P, and Site Kit. An earlier ClassifAI patch merged this week. One Gutenberg fix I had written I held back rather than send, because I wasn’t sure enough of it yet.
What I do it for is the reviews. Someone else’s repository hands me a stranger who owes me nothing and reads my diff like it’s suspicious, and every so often they ask a question my own eyes had slid straight past.
Eleven of my own posts, read the way a stranger reads them
Then I did the thing I keep telling clients to do and keep putting off myself. I ran a real editorial pass over eleven pieces I had published or scheduled, reading each one cold.
All eleven came back needing work, and for the same reason every time. I lean on two tics without noticing: the “not this, it’s that” reversal, and the three-beat list where two beats would have done. Once you see them you can’t unsee them, and I had apparently been seeing none of them.
The worse discovery was that my automated gate had waved ten of the eleven straight through. It was measuring what was easy to measure and missing what actually mattered. One post sat roughly ninety minutes from publishing itself on schedule with an editorial note still in the body, a line that read, in full, # APHORISTIC LINE. It would have gone out like that. To everyone.
What the week actually cost, and where
Every one of these was fine from where I was sitting. The form submitted. The posts scored green. Nothing on my own screen looked wrong for a second.
The failures were all on the far side of the glass. One lived in a stranger’s browser, quietly filling in a field I had hidden. The others were waiting where I couldn’t see them either: in a maintainer’s question I hadn’t thought to ask, and in a reader who would have hit eleven posts in a row and clocked the same two tricks by the third. The thing I keep re-learning is that “works for me” is the least interesting test there is, because I am the one person guaranteed to be fooled by my own assumptions.
Saving you from building the trap and then finding out who it caught is a fair amount of what my WordPress services actually are. And the little calculators I keep shipping now get the same cold-stranger read before they go live, not after.
Last week’s installment, the nightly bot that kept un-fixing its own fix, was about a machine undoing my work. This week it was me.

Leave a Reply