Why We Moved to the Next.js App Router for Client Projects
For a long time our default recommendation for client marketing sites and product dashboards was the Next.js Pages Router — it was stable, well understood, and predictable. We've since moved our default to the App Router, and it wasn't just about chasing the newest thing.
React Server Components let us push data fetching directly into the component tree instead of routing everything through getServerSideProps or a client-side fetch waterfall. For content-heavy marketing sites especially, that means less client-side JavaScript and faster first paint.
Nested layouts solved a real annoyance — shared UI that used to require careful prop-drilling or duplicate layout components now composes naturally per route segment.
It hasn't been friction-free. The mental model shift from 'everything is a client component' to 'default to server, opt into client' takes real adjustment for a team, and some third-party libraries still assume a client-rendered tree. But for new builds, the trade-off is worth it.


