Start here. This is the direct spoken answer to practice first.
Overview
Next.js 16 can combine a reusable cached shell with request-time content, but the application must opt in and state what can be reused.
With cacheComponents: true, Next.js 16 enables the Cache Components model. Runtime data is fresh by default, and use cache explicitly marks a component or function whose output can be reused. Dynamic work such as request-bound data can stream through a Suspense boundary while cached content contributes to a fast reusable shell.