Insights & hot takes
Thoughts on content systems, frontend architecture, and the tools we use daily. Occasionally opinionated.
Latest articles

CMS migration checklist: the pre-launch essentials
The CMS migration checklist and pre-launch plan we run on every replatform: redirects, sitemaps, JSON-LD parity, OG images, baselines and 30-day post-launch monitoring.


AEO/SEO best practices for Sanity: the Roboto default
How we structure AEO and SEO on every Sanity build. Fallbacks, JSON-LD, sitemaps, content negotiation, llms.txt, accessibility, and the feedback loop that catches drift.





Our DeepSec audit and the future of infosec agents
We pointed Vercel's DeepSec at our own site. Real timings, real token burn, real findings, and why agentic infosec is about to feel normal.



Automate Sanity page builder thumbnails with Claude Code
Generate Sanity insertMenu thumbnails automatically with a Claude Code skill. Five to seven minutes per project, no Figma, no manual screenshotting.



Ode to cats: five years of Victorian cat mascots
Every blog post on this site has a Victorian cat hero image generated by AI. Here's every single one, in full colour, from the earliest originals to today.





Headless Shopify: what it costs and when it's worth it
Headless Shopify sounds great until you see the bill. We break down when it makes sense, when it doesn't, and what it actually costs across vanilla Shopify, custom themes, Hydrogen, and Next.js builds.



Next.js 16.2 for dummies
Faster dev server, faster rendering, 200+ Turbopack fixes. Here's what actually matters.



Clean your GROQ
How to structure GROQ queries that stay readable as your Sanity project grows. Fragment-based patterns with code examples.




Why we built Satoru, our background coding agent
How we built Satoru, a sandboxed background coding agent powered by Cloudflare Durable Objects and Modal to handle retainer backlogs across client codebases.



