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
- 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.
- 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
- 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.
- 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
- 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.
- 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.