Next.js App Router data fetching: choosing the right tool
Server Components, Server Actions, route handlers and client fetching — a practical guide to picking the simplest option that fits each case.
Read articleBlog
Practical writing on Next.js, Supabase, accessibility, performance and AI features.
Server Components, Server Actions, route handlers and client fetching — a practical guide to picking the simplest option that fits each case.
Read article10 articles

Resource naming, status codes, pagination and versioning — the decisions that keep an API predictable years after launch.

Discriminated unions, exhaustive checks and branded types turn whole classes of runtime errors into compile-time ones.

Crawlability, metadata, performance and structured data — the fundamentals that matter more than any trick.

B-tree, unique and partial indexes, and how to read a query plan before you add one.

From local development to store builds — a repeatable workflow for small teams building cross-platform apps.

Screening, scoping and budgeting — how to find a developer who understands your product, not just your tech stack.

Document store or relational Postgres? How to choose the right backend for your Next.js product without locking yourself in.

LCP, INP and CLS explained, with the Next.js techniques that actually move the needle on real devices.

How retrieval-augmented generation turns your own content into an assistant that cites its sources — and how to build it without surprises.
If an article sparked an idea for your product or team, I'd be glad to hear about it.