Skip to content

Next.js App Router

The Next.js App Router: what runs on the server or the client, how data is fetched and cached, and which server entry points are public endpoints.

6 lessons

Server/client split

  1. 1Server Components vs Client Components'use client' decides which code ships to the browser, not where a component renders, and every prop crossing it is public.
  2. 2Server data fetching without waterfallsAn await holds only what renders below it: start independent reads together, share repeats with cache(), and stream the slow part.

Rendering and caching

  1. 3Rendering modes: static, dynamic, ISR, streaming, PPRThe build stores everything that does not need the request; only the parts that do stream in, and a stored result changes when revalidated.
  2. 4Caching in Next.js 16: use cache and tagsNext 16 stores only what you mark, keys it by its inputs, and the call after a write decides who sees the change first.

Server entry points and security

  1. 5Server Actions, route handlers and proxy as public endpointsEach entry point is a public door; it authenticates, authorizes the object and validates the input itself.
  2. 6The December 2025 React Server Components advisoriesIf your app supports Server Components, the advisory is yours: upgrade to the fixed version, redeploy, rotate secrets, and expect to do it again.