Home / Blog

Blog

Short technical notes on SaaS, iOS, API and WordPress.

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…

Blog 4 min

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.

Blog 3 min

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…

Blog 3 min

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…

Blog 3 min

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…

Blog 3 min

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…

Blog 3 min

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…

Blog 6 min

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:…

Blog 6 min

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…

Blog 7 min

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…

Blog 7 min

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.

Blog 6 min

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…

Blog 6 min