Writing & build logs.
Essays on software development, web builds, and AI tooling. Plus build notes from what I'm actually working on right now.
I deployed Next.js to cPanel. The three bugs weren't in any tutorial.
A static Next.js deploy breaks in three specific places on cPanel: the LiteSpeed .htaccess configuration, next/image's optimisation API assumption, and a trailing-slash 404. None of the tutorials document them together. Eight chapters now do.
The link preview is blank and the build passed
Sharing a captainrandom.co.uk album page on WhatsApp returned a blank white card. Per-page og:image overrides were working on writing posts; the root layout had no default image. Typecheck passed, build passed, Lighthouse passed — WhatsApp showed a grey rectangle.
The rebrand lived in the spec. The card read the README.
Two /work/ cards shipped in the same session. One named a product that had been renamed six months earlier. The other described the wrong project entirely. Both errors traced back to the same cause: the wrong document at the wrong time.
Eight chapters, two Workflows: which parts of a course parallelise
Shipping the static-next-cpanel course via two ultracode Workflows revealed a clean partition: chapter bodies fan out to parallel agents without coordination cost; prerequisite ordering and the curriculum through-line do not.
The cron fires daily. July's 14-day cadence clock ran on manual rescues.
Four composer failures manually rescued. A three-weekday gap that broke the clock and required two publishes on one morning to restart it. The July UK Calculators logs show cadence discipline isn't a property of the scheduler — it's a property of what happens when the scheduler fails.




