Writing · Notes from the field
On the craft.
Long-form notes on Strapi, headless architecture, and the unglamorous decisions that decide whether a rollout ships. Roughly one piece a month — when I have something to say, not when the calendar tells me to.
Latest · Featured
Building High-Performance Strapi Apps: Common Pitfalls and Best Practices
Where Strapi performance problems actually come from, why populate=deep is a trap, and how to design schemas that don't get expensive as they grow.
strapi.io Read piece
Archive
2026-03-12 Strapi 5 + Next.js App Router — the integration patterns that actually scale Six patterns I keep reaching for when wiring Strapi 5 to a real Next.js App Router codebase. Tagged revalidation, draft mode handoff, the typed client, and what to do about RSC. Strapi 12 min 2026-01-04 Content modelling for headless: getting it wrong, then right The single biggest determinant of whether a headless rollout ships on time. A field guide to dynamic zones, components, and the conversations to have with editors before you touch the schema. Architecture 10 min 2025-11-28 Draft & Publish in production — what the docs don't tell you Editor workflows, preview URLs, and the surprisingly subtle interplay with Next.js draft mode. Notes from running this at scale across two enterprise rollouts. Strapi 8 min 2025-09-17 Migrating from Contentful to Strapi without a freeze How we moved 40 editorial brands off Contentful and onto Strapi 5 with zero content freeze, zero URL changes, and (mostly) zero tears. Includes the migration script we open-sourced. Architecture 15 min 2025-07-02 Why your Next.js ISR is lying to you (and how to fix it) A short investigation into stale-while-revalidate behaviour in App Router and the three configuration mistakes I see most often. Next.js 7 min