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-09-23 Is canvas design dead in the age of AI? Figma's revenue is accelerating while its entire roadmap works to close the distance between a drawing and the running thing. Both of those are true, which means the question is badly formed. Here is the version of it worth answering. 10 min 2026-09-22 Why agency pricing doesn't survive AI Where a hundred thousand pounds of agency budget actually goes, according to the industry's own published benchmarks, and why the thing it buys is the thing AI has made unnecessary. 9 min 2026-09-17 What actually breaks in the first 90 days The advisory window is ninety days on the tin, and softer than that in practice. What I actually see break in the first ninety days of a Strapi Enterprise build, ordered by how often it happens times what it costs to undo once content exists. Strapi 13 min 2026-09-17 48,605 calls to answer the same question Response sanitization was 73% of request time in a profiled Strapi REST read. Eight pull requests, a small slice of what shipped between 5.51.2 and 5.52.2, show where it went: registry copies rebuilt per node, exceptions used as predicates, and per-key allocations in the traversal that walks every response. Strapi 10 min 2026-09-16 Strapi Growth vs Enterprise: what you actually get A tier-by-tier read on Strapi Growth vs Enterprise: what's free in the open-source edition, what each paid plan unlocks, and the support scope that really separates them. Strapi 15 min 2026-09-09 What a vendor implementation manager actually does A vendor implementation manager on what the job actually is: ninety days, no commits to your repository, and the whole value in catching the expensive decision while it's still a conversation. Including the parts that don't flatter us. Strapi 11 min 2026-08-04 The time saved writing code goes straight into checking it Automate the known, invest people in the unknown. It is the best one-line summary of what agents are doing to engineering teams, and most implementations of it quietly deliver only the first half. 9 min 2026-07-28 The agent reading your docs isn't sending you a visitor Documentation has a second audience now, and almost every piece of advice about it is aimed at the wrong moment. Cloudflare's crawl-to-referral data, what llms.txt actually does, and the content architecture problem underneath both. 12 min 2026-04-03 Thirty-six malicious npm packages, all called strapi-plugin-something Thirty-six malicious packages went up on npm under the strapi-plugin prefix in a single afternoon. SafeDep has the technical detail. The rest is worth saying plainly. Strapi 3 min 2026-02-13 Why SQLite Is a Poor Fit for Production Strapi Applications Why SQLite's embedded design misaligns with Strapi as a server platform: file-based storage, weak concurrency under load, and the looser constraint enforcement that bites in production, whatever the size of the site. strapi.io Strapi 5 min 2024-10-01 How to Migrate Your Project from Strapi 4 to Strapi 5 Paul Bratslavsky's step-by-step migration guide: running the upgrade tool and its codemods, updating custom middleware for the new dynamic-zone population syntax, and refactoring the front end for the flattened v5 response, with the compatibility header as a stopgap. strapi.io Strapi 20 min