ACF Pro done right: flexible content and clone fields without wrecking the editor
Flexible content and clone fields are two of ACF Pro's strongest features, and two of the easiest to misuse. Here is how…
Batch vs streaming API endpoints: picking the right one for the client
Send one giant batch or stream the chunks? I've shipped both in production. Here are the factors that decide it.
MapKit, Google Maps, Mapbox on iOS: which one and when
I've shipped all three map SDKs on separate projects. Here is where each one earns its keep and where each one falls…
Stateless backends don’t remove state, they move it somewhere more expensive
Stateless design doesn't solve every problem, and it invents a few new ones. Here is what I've actually hit in production, and…
80% test coverage: signal, target, or theater?
The 80% coverage target is treated as industry gospel. I've shipped projects at 95% and at 30% and can tell you the…
preload, prefetch, preconnect: three hints that solve three different problems
Used right, resource hints make a page faster. Used wrong, they do the opposite. Here is how I tell the three hints…
Headless WordPress with Next.js: picking between WPGraphQL and the REST API
Choosing your data layer for a headless WordPress + Next.js site is a high-leverage decision. Here is how WPGraphQL and the WP…
API deprecation without burning your consumers: a 6-month playbook
Moving an API from v1 to v2 is more than a URL change. Here is how to shape a six-month deprecation cycle:…
iOS onboarding that actually moves retention: what 12 apps taught me
The first five seconds decide an app's fate. Here are the onboarding patterns I've A/B tested across 12 apps, and which decisions…
Multi-tenant data export and erasure: shipping GDPR without leaking tenants
Users have the right to export and delete their data. Here is how to design that in a multi-tenant system without leaking…
Test pyramid: the real split between unit, integration, and E2E
The classic 70/20/10 test pyramid advice doesn't always hold on real projects. Practical splits from three projects.
Service Worker caching: shipping an offline-first web app
Building a web app that keeps working when the network dies is a modern web superpower. Cache strategies, precaching, runtime cache, update…