Writing & build logs.
Essays on software development, web builds, and AI tooling. Plus build notes from what I'm actually working on right now.
The search index built in three seconds. Five phases made that possible.
Pagefind took an afternoon to wire up. The navigation phases before it took a week. A search index returns what’s there — and what needed to be there first was structure.
AdSense readiness: the checklist caught one gap, the reviewer found another, the sweep found a third
Seven out of eight on the automated readiness audit, then rejected for low value content anyway. The fix required three rounds: media diversity closed before submission, hollow hub listings after rejection, and a site-wide sweep that stripped fabricated trust signals the structural checklist had no way to catch.
Google's AdSense reviewer checklist returned 7 of 8 green. Format diversity was the one that counted.
Running Google's reviewer checklist against UK Calculators returned 7 of 8 green. The one red item was format diversity: zero of 38 articles had any embedded visual content. Eight days after submission, rejected for low value content — a checklist score doesn't carry item weights, and format diversity was the one Google's reviewer weighted most.
The cron produced zero drafts. That was the correct answer.
Four mornings into a 14-day operator-publish sprint on UK Calculators, the pipeline ranked 150 clusters, fetched candidates, and produced nothing. Not a failure. A signal that the ground-truth layer, not the LLM, is the binding constraint in a pipeline built on live gov.uk sources.
Fifteen claim blocks and a zero-draft cron: the cost of grounding a content pipeline in gov.uk
Hand-curated gov.uk claim blocks stopped the ukcalculators drafter fabricating figures. Three days after the first clean pillar shipped, the cron fired on time, ranked 150 clusters, put mortgage at the top — and produced nothing. That was the gate working correctly.



