Skip to content

Unify caching story across the docs#90149

Open
delbaoliveira wants to merge 14 commits intocanaryfrom
docs-unify-caching-story
Open

Unify caching story across the docs#90149
delbaoliveira wants to merge 14 commits intocanaryfrom
docs-unify-caching-story

Conversation

@delbaoliveira
Copy link
Collaborator

@delbaoliveira delbaoliveira commented Feb 18, 2026

IA updates

Getting Started section:

  • Improves Getting Started progression:
    • Before: CC → Fetching Data → Updating Data → Caching and Revalidating (old and new model mixed)
    • After: Fetching Data (Dynamic) → Mutating Data (Dynamic) → Caching with CC (Prerendering) → Revalidating with CC.
  • New: caching.mdx (CC-first)
    • Structure:
      • Enabling Cache Components
      • Data vs UI-level caching
      • Working with Runtime APIs
      • Passing runtime values to cached functions
      • Working with non-deterministic operations
      • Working with synchronous operations
      • How rendering works (PPR and static shell story)
  • New: revalidating.mdx (CC-first)
    • Explains how to use cacheLife and cacheTag

Guides Section:

  • New: caching-and-revalidating.mdx (Previous Model)
    • For users who are not using CC, includes fetch options and route segment config
    • Moves route segment config options that don't apply to CC from API reference to this guide (for easy archiving in the future).
  • New: migrating-to-cache-components.mdx (WIP)
  • Del: caching.mdx 😌

To make it easier to review this PR, I'm consolidating terms and broken links in a new PR: [PR]

@nextjs-bot nextjs-bot added created-by: Next.js DevEx team PRs by the DX team. Documentation Related to Next.js' official documentation. labels Feb 18, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 18, 2026

Hi there 👋

It looks like this PR introduces broken links to the docs, please take a moment to fix them before merging:

Broken link Type File
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/01-getting-started/03-layouts-and-pages.mdx
/docs/app/getting-started/caching-and-revalidating link /docs/01-app/01-getting-started/04-linking-and-navigating.mdx
/docs/app/guides/caching#rendering-strategies link /docs/01-app/01-getting-started/05-server-and-client-components.mdx
/docs/app/api-reference/cli/next-build#output link /docs/01-app/01-getting-started/08-caching.mdx
#caching-data-with-use-cache hash /docs/01-app/01-getting-started/08-caching.mdx
/docs/app/getting-started/caching#runtime-data hash /docs/01-app/01-getting-started/09-revalidating.mdx
/docs/app/getting-started/cache-components link /docs/01-app/01-getting-started/15-route-handlers.mdx
/docs/app/api-reference/file-conventions/route-segment-config#dynamic hash /docs/01-app/01-getting-started/15-route-handlers.mdx
/docs/app/getting-started/cache-components link /docs/01-app/02-guides/activity-cache-components.mdx
app/getting-started/cache-components related /docs/01-app/02-guides/activity-cache-components.mdx
/docs/app/getting-started/cache-components link /docs/01-app/02-guides/activity.mdx
app/getting-started/cache-components related /docs/01-app/02-guides/activity.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/authentication.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/authentication.mdx
/docs/app/api-reference/file-conventions/route-segment-config#dynamic hash /docs/01-app/02-guides/backend-for-frontend.mdx
#revalidate hash /docs/01-app/02-guides/caching-without-cache-components.mdx
#unstable_cache hash /docs/01-app/02-guides/caching-without-cache-components.mdx
#unstable_cache hash /docs/01-app/02-guides/caching-without-cache-components.mdx
/docs/app/api-reference/functions/fetch#memoization hash /docs/01-app/02-guides/caching-without-cache-components.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/content-security-policy.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/draft-mode.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/incremental-static-regeneration.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/incremental-static-regeneration.mdx
/docs/app/guides/caching#data-cache link /docs/01-app/02-guides/incremental-static-regeneration.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/incremental-static-regeneration.mdx
/docs/app/api-reference/file-conventions/route-segment-config#revalidate hash /docs/01-app/02-guides/incremental-static-regeneration.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/02-guides/migrating/app-router-migration.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/multi-zones.mdx
/docs/app/guides/caching#full-route-cache link /docs/01-app/02-guides/prefetching.mdx
/docs/app/getting-started/cache-components link /docs/01-app/02-guides/prefetching.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/guides/caching link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/guides/caching#data-cache link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/production-checklist.mdx
/docs/app/getting-started/fetching-data#preloading-data hash /docs/01-app/02-guides/production-checklist.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/redirecting.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/redirecting.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/self-hosting.mdx
/docs/app/getting-started/cache-components link /docs/01-app/02-guides/self-hosting.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/single-page-applications.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/single-page-applications.mdx
/docs/app/getting-started/updating-data link /docs/01-app/02-guides/static-exports.mdx
/docs/app/api-reference/file-conventions/route-segment-config#dynamic hash /docs/01-app/02-guides/static-exports.mdx
/docs/app/getting-started/updating-data#what-are-server-functions link /docs/01-app/02-guides/upgrading/version-16.mdx
/docs/app/getting-started/cache-components#with-runtime-data link /docs/01-app/03-api-reference/01-directives/use-cache-private.mdx
/docs/app/getting-started/cache-components#how-rendering-works-with-cache-components link /docs/01-app/03-api-reference/01-directives/use-cache-private.mdx
/docs/app/getting-started/cache-components#how-rendering-works-with-cache-components link /docs/01-app/03-api-reference/01-directives/use-cache-private.mdx
/docs/app/getting-started/cache-components#with-runtime-data link /docs/01-app/03-api-reference/01-directives/use-cache-remote.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/02-components/form.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx
/docs/app/guides/caching#dynamic-apis link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx
/docs/app/guides/caching#segment-config-options link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx
/docs/app/guides/caching#dynamic-apis link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/manifest.mdx
/docs/app/guides/caching#segment-config-options link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/manifest.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx
/docs/app/guides/caching#dynamic-apis link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx
/docs/app/guides/caching#segment-config-options link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx
/docs/app/api-reference/file-conventions/route-segment-config#revalidate hash /docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx
/docs/app/guides/caching#dynamic-apis link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/robots.mdx
/docs/app/guides/caching#segment-config-options link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/robots.mdx
/docs/app/guides/caching#dynamic-apis link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/sitemap.mdx
/docs/app/guides/caching#segment-config-options link /docs/01-app/03-api-reference/03-file-conventions/01-metadata/sitemap.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/03-file-conventions/dynamic-routes.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/03-file-conventions/dynamic-routes.mdx
/docs/app/guides/caching#request-memoization link /docs/01-app/03-api-reference/03-file-conventions/dynamic-routes.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/03-file-conventions/page.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/03-file-conventions/page.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/03-file-conventions/parallel-routes.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/03-file-conventions/parallel-routes.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/03-file-conventions/route.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/after.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/after.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/after.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/after.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/after.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/after.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/cacheTag.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/connection.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/getting-started/updating-data#what-are-server-functions link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/guides/caching#cookies link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/cookies.mdx
/docs/app/guides/caching#data-cache link /docs/01-app/03-api-reference/04-functions/fetch.mdx
/docs/app/guides/caching#data-cache link /docs/01-app/03-api-reference/04-functions/fetch.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/fetch.mdx
/docs/app/guides/caching#data-cache link /docs/01-app/03-api-reference/04-functions/fetch.mdx
/docs/app/api-reference/file-conventions/route-segment-config#revalidate hash /docs/01-app/03-api-reference/04-functions/fetch.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/forbidden.mdx
/docs/app/guides/caching#request-memoization link /docs/01-app/03-api-reference/04-functions/generate-metadata.mdx
/docs/app/guides/caching#react-cache-function link /docs/01-app/03-api-reference/04-functions/generate-metadata.mdx
/docs/app/guides/caching#request-memoization link /docs/01-app/03-api-reference/04-functions/generate-metadata.mdx
/docs/app/guides/caching#react-cache-function link /docs/01-app/03-api-reference/04-functions/generate-metadata.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/generate-metadata.mdx
app/getting-started/cache-components related /docs/01-app/03-api-reference/04-functions/generate-metadata.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/guides/caching#request-memoization link /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/guides/caching#react-cache-function link /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/api-reference/file-conventions/route-segment-config#dynamic hash /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/api-reference/file-conventions/route-segment-config#dynamic hash /docs/01-app/03-api-reference/04-functions/generate-static-params.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/generate-viewport.mdx
app/getting-started/cache-components related /docs/01-app/03-api-reference/04-functions/generate-viewport.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/headers.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/headers.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/permanentRedirect.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/permanentRedirect.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/redirect.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/redirect.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/refresh.mdx
/docs/app/guides/caching link /docs/01-app/03-api-reference/04-functions/revalidatePath.mdx
/docs/app/guides/caching link /docs/01-app/03-api-reference/04-functions/revalidateTag.mdx
/docs/app/guides/caching#fetch-optionsnexttags-and-revalidatetag link /docs/01-app/03-api-reference/04-functions/revalidateTag.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/unauthorized.mdx
/docs/app/getting-started/cache-components link /docs/01-app/03-api-reference/04-functions/unstable_cache.mdx
/docs/app/guides/caching#data-cache link /docs/01-app/03-api-reference/04-functions/unstable_cache.mdx
/docs/app/guides/caching link /docs/01-app/03-api-reference/04-functions/updateTag.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/updateTag.mdx
/docs/app/getting-started/updating-data link /docs/01-app/03-api-reference/04-functions/updateTag.mdx
/docs/app/guides/caching#fetch-optionsnexttags-and-revalidatetag link /docs/01-app/03-api-reference/04-functions/updateTag.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/04-functions/use-router.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/04-functions/use-search-params.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/04-functions/use-search-params.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/use-search-params.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/04-functions/use-search-params.mdx
/docs/app/guides/caching#static-rendering link /docs/01-app/03-api-reference/05-config/01-next-config-js/devIndicators.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/05-config/01-next-config-js/devIndicators.mdx
/docs/app/guides/caching#dynamic-rendering link /docs/01-app/03-api-reference/05-config/01-next-config-js/devIndicators.mdx
/docs/app/guides/caching link /docs/01-app/03-api-reference/05-config/01-next-config-js/headers.mdx
/docs/app/guides/caching#client-side-router-cache link /docs/01-app/03-api-reference/05-config/01-next-config-js/staleTimes.mdx
/docs/app/guides/caching#routerprefetch link /docs/01-app/03-api-reference/05-config/01-next-config-js/staleTimes.mdx
/docs/app/guides/caching#client-side-router-cache link /docs/01-app/03-api-reference/05-config/01-next-config-js/staleTimes.mdx
/docs/app/guides/caching#client-side-router-cache link /docs/01-app/03-api-reference/05-config/01-next-config-js/staleTimes.mdx
/docs/app/getting-started/cache-components link /docs/01-app/04-glossary.mdx
/docs/app/getting-started/cache-components link /docs/01-app/04-glossary.mdx
/docs/app/getting-started/caching-and-revalidating link /docs/01-app/04-glossary.mdx
/docs/app/getting-started/updating-data link /docs/01-app/04-glossary.mdx
/docs/app/api-reference/functions/cacheLife#client-cache-behavior hash /docs/01-app/04-glossary.mdx
/docs/app/getting-started/updating-data link /docs/02-pages/03-building-your-application/03-data-fetching/03-forms-and-mutations.mdx
/docs/app/guides/caching#rendering-strategies link /errors/app-static-to-dynamic-error.mdx
/docs/app/guides/caching#dynamic-rendering link /errors/app-static-to-dynamic-error.mdx
/docs/app/getting-started/updating-data link /errors/failed-to-find-server-action.mdx
/docs/app/getting-started/updating-data link /errors/invalid-use-server-value.mdx
/docs/app/getting-started/updating-data link /errors/invalid-use-server-value.mdx
/docs/app/guides/caching#dynamic-rendering link /errors/missing-suspense-with-csr-bailout.mdx
/docs/app/getting-started/caching-and-revalidating link /errors/revalidate-tag-single-arg.mdx
/docs/app/guides/caching#dynamic-rendering link /errors/sync-dynamic-apis.mdx

Thank you 🙏

@delbaoliveira delbaoliveira marked this pull request as ready for review February 19, 2026 15:05
@delbaoliveira delbaoliveira changed the title WIP: Unify caching story across the docs Unify caching story across the docs Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Next.js DevEx team PRs by the DX team. Documentation Related to Next.js' official documentation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments