Routing, server components and rendering strategies in the Next.js App Router, pinned to Next.js 15.
Next.js is not a router you add to a React app. It is a framework that decides, per route, whether a page is built at compile time, per request, or streamed - and whether the code that renders it ever reaches the browser at all. Getting that decision wrong is what produces pages that are slow for reasons nobody can find, bundles full of code that only ever runs on the server, and caching bugs that only reproduce in production. This course works on the App Router and pins its claims to Next.js 15, because that release moved several defaults that most tutorials still describe the old way. fetch is no longer cached by default. params and searchParams are Promises and must be awaited. cookies, headers and draftMode are async. Each of those is a breaking change that produces a confusing error rather than a clear one, so each gets its own treatment here. The practice is prediction-based. The sandbox cannot run a Next.js server, so the questions ask what Next.js will do with a given route: what ships to the browser, what is cached, when a function runs. Each prediction states the version and the default it depends on, because a prediction without a version is not an answer.