2026
I Built a Weather System, Then Deleted It All
I spent an evening building CSS weather overlays for my site's hero images — rain, fog, night tinting. Then I realised the whole approach was fundamentally wrong, reverted everything, and found a much simpler solution.
Rebuilding My Site: From WordPress to a Static Astro Site with AI
How I migrated from WordPress to Astro, imported years of content, set up redirects, defined a claymorphic design system, and built an AI agent to help me develop websites.
The AntiSlop: Open Source AI Writing Detection That Actually Fixes Things
I've released The AntiSlop — a Claude Code skill that detects 35+ AI writing patterns and rewrites the problems. Not just detection. Fixes.
AI As a Co-Operating System
Most people use AI as a tool. I use it as an operating system — one that runs alongside me, not just for me. Here's how I built Cerebro.
Claude Code "Lessons Learned" Skill
Every mistake is a chance to make your Claude Code setup smarter—if you capture the lesson right. The Lessons Learned skill runs a 7-phase retrospective that doesn't just analyze what went wrong, it implements the fix before you move on.
My MCP Server Collection for Claude Code
I've released eight MCP servers that connect Claude to services I use daily—calendar, email marketing, analytics, media management, and more. Here's the full collection.
The Borg Agent: Stop Copying Claude Code Skills Blindly
I built a Claude Code agent that analyses external Claude setups and intelligently assimilates their features into your system. It handles naming conflicts, missing dependencies, and adaptation automatically.
Voice Editor: A Claude Code Skill for Authentic AI Writing
I built a Claude Code skill that transforms generic AI output into writing that sounds like me. Here's how the 6-pass editing workflow works and why the 30-40% edit rule matters.
2025
Building Book-Powered AI Agents with Calibre and Claude Code
Web search is great for current events. But when you need depth — the kind of insight that comes from a carefully curated book collection — web results fall short. What if your AI agents could search your personal library instead?
Teaching Claude to Read My Book Collection
I built a system to index my 1,700 ebook Calibre library into ChromaDB so Claude can search my actual books instead of paraphrasing from general knowledge.
Building an AI-Powered WordPress Publishing Pipeline with Claude Code
I built a WordPress plugin and MCP server that lets Claude publish directly from Obsidian to my blog. Draft, tell Claude to publish, done.
From Remote Access to Agentic OS: Two Weeks with Claude Code
What started as remote terminal access to my Obsidian vault evolved into something like an operating system—specialised agents, MCP servers, and automated workflows.
Signal Over Noise Themes for Ghostty and Obsidian
I created matching themes for Ghostty terminal and Obsidian with a mid-century modern palette—teal, burnt orange, and cream. Here's the colour system and how to install them.
Updating my Claude setup to support remote work
I set up Claude Code on my home server with Tailscale and Syncthing so I can access my Obsidian vault from anywhere—iPad, phone, or any device with a terminal.
Behind the Screens: Optimising My Newsletter With AI
I spent an hour with Comet and Claude auditing a year's worth of Signal Over Noise newsletter strategy—timing, audience, and growth opportunities.
Outdoor Summer Cinema
We took the kids to see Pixar's Elio at our local outdoor cinema. Bats flickering through the projector beam as the moon rose—properly magical.
Cold Brew With Lemon and Dalgona at Home: Simple Summer Coffee Experiments
Valencia hit 40°C so I traded hot coffee for cold brew with lemon and 2-minute Dalgona whipped coffee over ice.
Perplexity does video generation now
Testing Perplexity's new video generation—I asked it to make me go Super Saiyan and achieve my final form. Plus eating spaghetti.
Thoughts on Claude
Notes on using Claude with MCP servers, Obsidian, and Things 3—including why I have to remind Claude what time it is.
A quick spin with ElevenMusic
Testing ElevenLabs' new music generation tool—I tried to create a Counting Crows-style album with AI prompts.
One of these days I'll be sick of playing Balatro
But today is not that day.
EOS Webcam Utility Pro is a joke
Canon turned their COVID-era webcam software into a subscription cash grab. My EOS M200 deserves better.
Creating my tone of voice with Claude
I gave Claude my book manuscript and asked it to create a writing style guide. It came back with 2,500 words capturing how I actually write.
Behind the Screens - generating a comic with Sora
I used Sora to generate a four-panel comic illustrating AI's mechanical writing patterns for my newsletter on spotting AI-generated text.
Scaling back to WordPress
I'm leaving Squarespace for WordPress. I want to write locally in Obsidian and automate publishing—something Squarespace just can't do.
Remote Resilience Hub Wins at Hack the Future 2025
Our team won at the Hack the Future climate resilience hackathon in Tallinn—we built a toolkit to support Valencia's remote workers during crises like floods and power outages.
Photo Journal - Tallinn
Late arrival into Tallinn after a Munich layover, Eurovision on the radio, and a driver who'd be back at 2am for the Turkey flights.
Snickernomics
I tracked Snickers prices across my Estonia trip—€4.49 in Valencia airport, €2.00 in Tallinn Station, €1.99 in Frankfurt. Airport markup is real.
Using ChatGPT to Untangle My Web Hosting Costs
My hosting invoices were a mess of active domains, abandoned projects, and mystery services. I used ChatGPT to finally audit what I was paying for.
I Let OpenAI's New Terminal Agent Fix My Media Server
OpenAI's Codex CLI analyzed and fixed my media server configuration with natural language commands. Saved me hours of manual debugging.
Another day, another argument with AI.
Screenshot of me arguing with AI. Again.
Scary Pockets / Magazine
Sleep-deprived in a cafe, pleasantly surprised to see Jack Conte, Ben Folds and Scary Pockets on the TV screen.
AI Granny Takes on Phone Scammers
Daisy the AI chatbot wastes scammers' time so humans don't have to. This is the way.
Having fun with Make.com automations
Building automations for Gmail auto-responses with ChatGPT and automated podcast marketing to BlueSky.
Goodbye my friend.
In memory of Dante Tiberius, 2006-2025.
Moon and Jupiter
A night sky photo capturing the moon and Jupiter together.
2024
Photo Journal - London
Flying over flood-devastated Riba-Roja, pub dinners in Brook Green, goofy shots with my nephew, and working on the newsletter at 35,000 feet.
Found: Gladiator v Paddington
The crossover nobody asked for but everyone secretly wanted.
The Rise of Bluesky: A Privacy-Focused Alternative in the Social Media Landscape
Bluesky's post-election surge and commitment to not using content for AI training marks a shift in what users expect from social platforms.
Gaining Visibility in AI-Driven Results
SEO is evolving into GEO - generative engine optimisation. How to make your content visible in ChatGPT and Perplexity responses.
Mastering AI Interaction
Moving beyond 'act like an expert' - crafting detailed AI personas and prompts that unlock more useful, relevant responses.
Can You Outsmart a Troll by Thinking Like One?
Learning to identify misinformation by playing the Bad News game - stepping into the shoes of a disinformation producer to build mental defenses.
The AI Search Race
ChatGPT's new search features signal a shifting landscape, but Perplexity's head start shows OpenAI isn't the only player in the AI search game.