Brain Dumps
Real lessons from building real projects. No fluff, no theory – just honest insights from the trenches of development, complete with spectacular failures and hard-won victories.

Latest
September 28, 2026
4 min read
A regex matched <pre> as <p> and made half my blog invisible
Half of one of my blog posts was invisible: dark text on a dark code block. The stored HTML was fine, so the bug was in my own content formatter, a regex that treated pre tags as paragraphs. Here's the one-character fix and the lesson that isn't "don't parse HTML with regex."

September 28, 2026
Duplicate Title Tags: Why They Happen and How to Fix Them
Duplicate title tags come in two flavours — two elements on one page fighting each other, or the same title copied across dozens of pages. Both hurt rankings. Here's how to find them and fix them for good.
September 28, 2026
gpt-image-2AI image generationClaude Codecoding agentsopen sourcedeveloper tools
How I Generate Images in Claude Code and Codex with gpt-image-2.5
Image generation in Claude Code used to mean screenshots and web UIs. Here is how I built pixeltamer — an open-source gpt-image-2 skill for Claude Code, Codex, and other agents — with dual backends, multi-reference composition, and agent visual review.
September 6, 2026
faviconmeta tagstechnical SEONext.jsweb development
Favicon Size in 2026: Why Every Guide Gives You a Different Number
MDN says 16×16. Google says bigger than 48×48. Half the internet says multiples of 48, which Google's docs never actually say. They're not contradicting each other. They're answering different questions. Here's the reconciliation, and the three files you actually ship.

September 5, 2026
AI coding agentspiself-hosted LLMOpenAI-compatible APIopen sourcebuilding in public
pi Said "xhigh". The Server Said 400.
I plugged a self-hosted model into my coding agent, it worked fine, and then it stopped working the moment I turned thinking up. The culprit was one ?? operator sending the wrong string over the wire. Here's the bug, and the endpoint manager I built around fixing it.

August 21, 2026
The SEO tasks AI is actually good at (and the ones it quietly ruins)
AI doesn't replace SEOs. It also doesn't fail evenly. Here's the honest breakdown — the tasks where AI genuinely outperforms humans, the tasks where it produces convincing slop, and where the line actually lives.

Content brief pipelines with Claude Code: the workflow that replaces €500 agency briefs
Agencies charge €300–500 for a single SEO content brief. Here's the Claude Code pipeline that produces a better one in 20 minutes for under a euro — with the prompts, the structured output, and the parts that still need a human.

I asked 5 AI models who the best AI SEO experts are. Here's what they said (and why it matters)
Five AI engines, one prompt, five very different answers. The patterns in who gets cited (and who never does) reveal more about how AI citation works than any single ranking factor — and the gaps are an actual opportunity.

July 22, 2026
Schema generation with Claude: every page type, working JSON-LD, zero hallucinations
Schema is the easiest SEO win nobody implements. Here's the Claude prompt + ready-to-copy JSON-LD blocks for every common page type — blog post, product, service, person, organization, FAQ. Hallucination-proofed.

July 21, 2026
AI coding agentspimulti-modelLLM context windowbuilding in publicopen source
I Built a Council of AI Advisors Because the Old One Died Right When I Needed It
My coding agent runs a cheap model to save money. The trouble is the moments a cheap model quietly gets wrong. So I kept a smarter one on the bench — until the extension that was supposed to fetch it kept dying on long sessions. Here's what I built instead.

July 14, 2026
The complete guide to AI SEO automation in 2026 (the system I actually run)
Twelve weeks of replacing every part of my SEO workflow with AI. This is the full system — keyword research, brief generation, schema, internal linking, monitoring, citation tracking. The pieces, how they connect, and the parts that still need a human.

July 2, 2026
Meta Tags in Next.js: The App Router Metadata API End-to-End
In the App Router you don't hand-write meta tags — you export a metadata object or a generateMetadata function and Next.js handles the head. Here's how the whole system works, from static objects to dynamic OG images.
Got Questions or War Stories?
I love hearing about other people's spectacular failures and unexpected wins. Drop me a line if you've got a story to share or a question about any of these posts.
Let's Share Some War Stories