Engineering · 9 min read · 15 May 2026Draft
Next.js App Router: what I would tell my past self

This post is still being written. The finished version will appear here.
Server components are the default — treat them that way
Most of my early mistakes came from reaching for "use client" too soon. Data belongs on the server; interaction belongs on the client; the boundary should be as low in the tree as possible.
Caching: know which layer you are in
The three mistakes I made on a paid project and what each one cost, written up in the finished version of this post.
What I would tell my past self
Read the routing and caching docs once, end to end, before the first commit.