From Pages to App Router: A Migration Story
Six months of incremental adoption, what surprised us, and what we would do differently the second time around.
This is placeholder body copy. In a real post there would be an argument here, built one paragraph at a time, with the kind of small detours that make a technical essay feel like it was written by an actual human.
The repository this page lives in exists to demonstrate behavior of the Next.js router, so the content is intentionally boring. Any similarity to real insight is entirely coincidental, if occasionally welcome.
If you are reading this from a prefetch-triggered hover, congratulations, the link worked. If you are reading it after a full navigation, that also counts, and you have learned something about how caches behave under load.
More posts
Designing for Dark Mode Without Regret
Token choices, contrast checks, and the common traps that make dark mode feel like an afterthought.
Tailwind CSS v4: What Actually Changed
A short, practical tour of the new engine, configuration format, and how migration plays out in real apps.
Type-Safe Environment Variables at Scale
Why parsing env once at the edge of your program saves you hours of production debugging later.