# Next.js Documentation @doc-version: 16.0.7 @doc-version-notes: Some features may have extended or refined behavior in minor or patch releases - [Getting Started](https://nextjs.org/docs/app/getting-started.md): Learn how to create full-stack web applications with the Next.js App Router. - [Installation](https://nextjs.org/docs/app/getting-started/installation.md): Learn how to create a new Next.js application with the `create-next-app` CLI, and set up TypeScript, ESLint, and Module Path Aliases. - [Project Structure](https://nextjs.org/docs/app/getting-started/project-structure.md): Learn the folder and file conventions in Next.js, and how to organize your project. - [Layouts and Pages](https://nextjs.org/docs/app/getting-started/layouts-and-pages.md): Learn how to create your first pages and layouts, and link between them with the Link component. - [Linking and Navigating](https://nextjs.org/docs/app/getting-started/linking-and-navigating.md): Learn how the built-in navigation optimizations work, including prefetching, prerendering, and client-side navigation, and how to optimize navigation for dynamic routes and slow networks. - [Server and Client Components](https://nextjs.org/docs/app/getting-started/server-and-client-components.md): Learn how you can use React Server and Client Components to render parts of your application on the server or the client. - [Cache Components](https://nextjs.org/docs/app/getting-started/cache-components.md): Learn how to use Cache Components and combine the benefits of static and dynamic rendering. - [Fetching Data](https://nextjs.org/docs/app/getting-started/fetching-data.md): Learn how to fetch data and stream content that depends on data. - [Updating Data](https://nextjs.org/docs/app/getting-started/updating-data.md): Learn how to mutate data using Server Functions. - [Caching and Revalidating](https://nextjs.org/docs/app/getting-started/caching-and-revalidating.md): Learn how to cache and revalidate data in your application. - [Error Handling](https://nextjs.org/docs/app/getting-started/error-handling.md): Learn how to display expected errors and handle uncaught exceptions. - [CSS](https://nextjs.org/docs/app/getting-started/css.md): Learn about the different ways to add CSS to your application, including Tailwind CSS, CSS Modules, Global CSS, and more. - [Image Optimization](https://nextjs.org/docs/app/getting-started/images.md): Learn how to optimize images in Next.js - [Font Optimization](https://nextjs.org/docs/app/getting-started/fonts.md): Learn how to optimize fonts in Next.js - [Metadata and OG images](https://nextjs.org/docs/app/getting-started/metadata-and-og-images.md): Learn how to add metadata to your pages and create dynamic OG images. - [Route Handlers](https://nextjs.org/docs/app/getting-started/route-handlers.md): Learn how to use Route Handlers - [Proxy](https://nextjs.org/docs/app/getting-started/proxy.md): Learn how to use Proxy - [Deploying](https://nextjs.org/docs/app/getting-started/deploying.md): Learn how to deploy your Next.js application. - [Upgrading](https://nextjs.org/docs/app/getting-started/upgrading.md): Learn how to upgrade your Next.js application to the latest version or canary. - [Guides](https://nextjs.org/docs/app/guides.md): Learn how to implement common patterns and real-world use cases using Next.js - [Analytics](https://nextjs.org/docs/app/guides/analytics.md): Measure and track page performance using Next.js Speed Insights - [Authentication](https://nextjs.org/docs/app/guides/authentication.md): Learn how to implement authentication in your Next.js application. - [Backend for Frontend](https://nextjs.org/docs/app/guides/backend-for-frontend.md): Learn how to use Next.js as a backend framework - [Caching](https://nextjs.org/docs/app/guides/caching.md): An overview of caching mechanisms in Next.js. - [CI Build Caching](https://nextjs.org/docs/app/guides/ci-build-caching.md): Learn how to configure CI to cache Next.js builds - [Content Security Policy](https://nextjs.org/docs/app/guides/content-security-policy.md): Learn how to set a Content Security Policy (CSP) for your Next.js application. - [CSS-in-JS](https://nextjs.org/docs/app/guides/css-in-js.md): Use CSS-in-JS libraries with Next.js - [Custom Server](https://nextjs.org/docs/app/guides/custom-server.md): Start a Next.js app programmatically using a custom server. - [Data Security](https://nextjs.org/docs/app/guides/data-security.md): Learn the built-in data security features in Next.js and learn best practices for protecting your application's data. - [Debugging](https://nextjs.org/docs/app/guides/debugging.md): Learn how to debug your Next.js application with VS Code, Chrome DevTools, or Firefox DevTools. - [Draft Mode](https://nextjs.org/docs/app/guides/draft-mode.md): Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with App Router here. - [Environment Variables](https://nextjs.org/docs/app/guides/environment-variables.md): Learn to add and access environment variables in your Next.js application. - [Forms](https://nextjs.org/docs/app/guides/forms.md): Learn how to create forms in Next.js with React Server Actions. - [ISR](https://nextjs.org/docs/app/guides/incremental-static-regeneration.md): Learn how to create or update static pages at runtime with Incremental Static Regeneration. - [Instrumentation](https://nextjs.org/docs/app/guides/instrumentation.md): Learn how to use instrumentation to run code at server startup in your Next.js app - [Internationalization](https://nextjs.org/docs/app/guides/internationalization.md): Add support for multiple languages with internationalized routing and localized content. - [JSON-LD](https://nextjs.org/docs/app/guides/json-ld.md): Learn how to add JSON-LD to your Next.js application to describe your content to search engines and AI. - [Lazy Loading](https://nextjs.org/docs/app/guides/lazy-loading.md): Lazy load imported libraries and React Components to improve your application's loading performance. - [Development Environment](https://nextjs.org/docs/app/guides/local-development.md): Learn how to optimize your local development environment with Next.js. - [Next.js MCP Server](https://nextjs.org/docs/app/guides/mcp.md): Learn how to use Next.js MCP support to allow coding agents access to your application state - [MDX](https://nextjs.org/docs/app/guides/mdx.md): Learn how to configure MDX and use it in your Next.js apps. - [Memory Usage](https://nextjs.org/docs/app/guides/memory-usage.md): Optimize memory used by your application in development and production. - [Migrating](https://nextjs.org/docs/app/guides/migrating.md): Learn how to migrate from popular frameworks to Next.js - [App Router](https://nextjs.org/docs/app/guides/migrating/app-router-migration.md): Learn how to upgrade your existing Next.js application from the Pages Router to the App Router. - [Create React App](https://nextjs.org/docs/app/guides/migrating/from-create-react-app.md): Learn how to migrate your existing React application from Create React App to Next.js. - [Vite](https://nextjs.org/docs/app/guides/migrating/from-vite.md): Learn how to migrate your existing React application from Vite to Next.js. - [Multi-tenant](https://nextjs.org/docs/app/guides/multi-tenant.md): Learn how to build multi-tenant apps with the App Router. - [Multi-zones](https://nextjs.org/docs/app/guides/multi-zones.md): Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain. - [OpenTelemetry](https://nextjs.org/docs/app/guides/open-telemetry.md): Learn how to instrument your Next.js app with OpenTelemetry. - [Package Bundling](https://nextjs.org/docs/app/guides/package-bundling.md): Learn how to optimize your application's server and client bundles. - [Prefetching](https://nextjs.org/docs/app/guides/prefetching.md): Learn how to configure prefetching in Next.js - [Production](https://nextjs.org/docs/app/guides/production-checklist.md): Recommendations to ensure the best performance and user experience before taking your Next.js application to production. - [PWAs](https://nextjs.org/docs/app/guides/progressive-web-apps.md): Learn how to build a Progressive Web Application (PWA) with Next.js. - [Redirecting](https://nextjs.org/docs/app/guides/redirecting.md): Learn the different ways to handle redirects in Next.js. - [Sass](https://nextjs.org/docs/app/guides/sass.md): Style your Next.js application using Sass. - [Scripts](https://nextjs.org/docs/app/guides/scripts.md): Optimize 3rd party scripts with the built-in Script component. - [Self-Hosting](https://nextjs.org/docs/app/guides/self-hosting.md): Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports). - [SPAs](https://nextjs.org/docs/app/guides/single-page-applications.md): Next.js fully supports building Single-Page Applications (SPAs). - [Static Exports](https://nextjs.org/docs/app/guides/static-exports.md): Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server. - [Tailwind CSS v3](https://nextjs.org/docs/app/guides/tailwind-v3-css.md): Style your Next.js Application using Tailwind CSS v3 for broader browser support. - [Testing](https://nextjs.org/docs/app/guides/testing.md): Learn how to set up Next.js with four commonly used testing tools — Cypress, Playwright, Vitest, and Jest. - [Cypress](https://nextjs.org/docs/app/guides/testing/cypress.md): Learn how to set up Cypress with Next.js for End-to-End (E2E) and Component Testing. - [Jest](https://nextjs.org/docs/app/guides/testing/jest.md): Learn how to set up Jest with Next.js for Unit Testing and Snapshot Testing. - [Playwright](https://nextjs.org/docs/app/guides/testing/playwright.md): Learn how to set up Playwright with Next.js for End-to-End (E2E) Testing. - [Vitest](https://nextjs.org/docs/app/guides/testing/vitest.md): Learn how to set up Vitest with Next.js for Unit Testing. - [Third Party Libraries](https://nextjs.org/docs/app/guides/third-party-libraries.md): Optimize the performance of third-party libraries in your application with the `@next/third-parties` package. - [Upgrading](https://nextjs.org/docs/app/guides/upgrading.md): Learn how to upgrade to the latest versions of Next.js. - [Codemods](https://nextjs.org/docs/app/guides/upgrading/codemods.md): Use codemods to upgrade your Next.js codebase when new features are released. - [Version 14](https://nextjs.org/docs/app/guides/upgrading/version-14.md): Upgrade your Next.js Application from Version 13 to 14. - [Version 15](https://nextjs.org/docs/app/guides/upgrading/version-15.md): Upgrade your Next.js Application from Version 14 to 15. - [Version 16](https://nextjs.org/docs/app/guides/upgrading/version-16.md): Upgrade your Next.js Application from Version 15 to 16. - [Videos](https://nextjs.org/docs/app/guides/videos.md): Recommendations and best practices for optimizing videos in your Next.js application. - [API Reference](https://nextjs.org/docs/app/api-reference.md): Next.js API Reference for the App Router. - [Directives](https://nextjs.org/docs/app/api-reference/directives.md): Directives are used to modify the behavior of your Next.js application. - [use cache](https://nextjs.org/docs/app/api-reference/directives/use-cache.md): Learn how to use the use cache directive to cache data in your Next.js application. - [use cache: private](https://nextjs.org/docs/app/api-reference/directives/use-cache-private.md): Learn how to use the `"use cache: private"` directive to enable runtime prefetching of personalized content in your Next.js application. - [use cache: remote](https://nextjs.org/docs/app/api-reference/directives/use-cache-remote.md): Learn how to use the `"use cache: remote"` directive to enable caching in dynamic contexts in your Next.js application. - [use client](https://nextjs.org/docs/app/api-reference/directives/use-client.md): Learn how to use the use client directive to render a component on the client. - [use server](https://nextjs.org/docs/app/api-reference/directives/use-server.md): Learn how to use the use server directive to execute code on the server. - [Components](https://nextjs.org/docs/app/api-reference/components.md): API Reference for Next.js built-in components. - [Font](https://nextjs.org/docs/app/api-reference/components/font.md): Optimizing loading web fonts with the built-in `next/font` loaders. - [Form Component](https://nextjs.org/docs/app/api-reference/components/form.md): Learn how to use the `