Build LogLearning Hub
#91
2026-07-265 min read

The in-chapter TOC needed live JavaScript. It still got a mockup first.

The captainrandom learning hub navigation retrofit ran five phases. Every one went through the UI gate — interactive approval mockup before production code. The most interesting case was P4: the subsystem's only client-side component, with a live IntersectionObserver scroll-spy in its mockup, still approved before a line of React was written.

Read post→
Build LogPrivacy
#92
2026-07-265 min read

The privacy work isn't on the /privacy/ page

The /privacy/ page went live in June and covers what it covers. The actual privacy work on this site happened in a data-locality choice, a brand-separation rule, and a username leak in published MDX. Only one of the three announced itself.

Read post→
Build LogUK Calculators
#93
2026-07-255 min read

10 of 13 sentences made it. The verifier caught the rest before they reached a pillar page.

The June 30th cron produced a mortgage rate-spike draft grounded in April 2026 data. Ten of thirteen sentences passed. The three that didn't never reached a pillar page — and the next two days showed why that distinction matters at publishing scale.

Read post→
Build LogContent Pipeline
#94
2026-07-256 min read

14 days of daily publishing: the three failure modes I hadn't designed for

A 14-day publish cadence on UK Calculators surfaced three failure modes: title-mangling produces permanent ugly slugs, zero-draft mornings expose the absence of a fallback queue, and triage without memory republishes the same cluster it shipped the day before.

Read post→
Build LogSEO
#95
2026-07-255 min read

AdSense low-value rejection: thin pages, empty hubs, and six SVG diagrams

UK Calculators was rejected for low-value content on 10 July — ads.txt was authorised, so this was purely a content-quality judgement. Three concrete moves addressed the specific inventory-value criteria: expanding thin calculator landings, adding SVG diagrams across the pillar estate, and populating empty hub pages the rejection identified.

Read post→