# Next.js 14 Documentation > Reference and guides for Next.js v14.2.35 — the React framework for building full-stack web applications. Sections cover Getting Started, App Router, Architecture, and Community Resources. @doc-version: v14.2.35 **Next.js 14 is outside of our support policy.** Next.js 14 has reached end-of-life. We recommend upgrading to a supported version. ## Upgrade Guide - [Upgrade Guide](https://nextjs.org/docs/app/guides/upgrading/version-15) - [Codemods](https://nextjs.org/docs/app/guides/upgrading/codemods) ```bash npx @next/codemod@latest upgrade ``` ## Current Supported Versions | Version | Status | |---------|--------| | 16.x | Active LTS | | 15.x | Maintenance LTS | --- ## [Getting Started](https://nextjs.org/docs/14/getting-started) Learn how to create full-stack web applications with Next.js. - [Installation](https://nextjs.org/docs/14/getting-started/installation): Create a new Next.js application with `create-next-app`. Set up TypeScript, styles, and configure your `next.config.js` file. - [Project Structure](https://nextjs.org/docs/14/getting-started/project-structure): A list of folders and files conventions in a Next.js project ## [Building Your Application](https://nextjs.org/docs/14/app/building-your-application) Learn how to use Next.js features to build your application. - [Routing](https://nextjs.org/docs/14/app/building-your-application/routing): Learn the fundamentals of routing for front-end applications. - [Defining Routes](https://nextjs.org/docs/14/app/building-your-application/routing/defining-routes): Learn how to create your first route in Next.js. - [Pages and Layouts](https://nextjs.org/docs/14/app/building-your-application/routing/pages-and-layouts): Create your first page and shared layout with the App Router. - [Linking and Navigating](https://nextjs.org/docs/14/app/building-your-application/routing/linking-and-navigating): Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook. - [Loading UI and Streaming](https://nextjs.org/docs/14/app/building-your-application/routing/loading-ui-and-streaming): Built on top of Suspense, Loading UI allows you to create a fallback for specific route segments, and automatically stream content as it becomes ready. - [Error Handling](https://nextjs.org/docs/14/app/building-your-application/routing/error-handling): Handle runtime errors by automatically wrapping route segments and their nested children in a React Error Boundary. - [Redirecting](https://nextjs.org/docs/14/app/building-your-application/routing/redirecting): Learn the different ways to handle redirects in Next.js. - [Route Groups](https://nextjs.org/docs/14/app/building-your-application/routing/route-groups): Route Groups can be used to partition your Next.js application into different sections. - [Project Organization](https://nextjs.org/docs/14/app/building-your-application/routing/colocation): Learn how to organize your Next.js project and colocate files. - [Dynamic Routes](https://nextjs.org/docs/14/app/building-your-application/routing/dynamic-routes): Dynamic Routes can be used to programmatically generate route segments from dynamic data. - [Parallel Routes](https://nextjs.org/docs/14/app/building-your-application/routing/parallel-routes): Simultaneously render one or more pages in the same view that can be navigated independently. A pattern for highly dynamic applications. - [Intercepting Routes](https://nextjs.org/docs/14/app/building-your-application/routing/intercepting-routes): Use intercepting routes to load a new route within the current layout while masking the browser URL, useful for advanced routing patterns such as modals. - [Route Handlers](https://nextjs.org/docs/14/app/building-your-application/routing/route-handlers): Create custom request handlers for a given route using the Web's Request and Response APIs. - [Middleware](https://nextjs.org/docs/14/app/building-your-application/routing/middleware): Learn how to use Middleware to run code before a request is completed. - [Internationalization](https://nextjs.org/docs/14/app/building-your-application/routing/internationalization): Add support for multiple languages with internationalized routing and localized content. - [Data Fetching](https://nextjs.org/docs/14/app/building-your-application/data-fetching): Learn how to fetch, cache, revalidate, and mutate data with Next.js. - [Fetching, Caching, and Revalidating](https://nextjs.org/docs/14/app/building-your-application/data-fetching/fetching-caching-and-revalidating): Learn how to fetch, cache, and revalidate data in your Next.js application. - [Server Actions and Mutations](https://nextjs.org/docs/14/app/building-your-application/data-fetching/server-actions-and-mutations): Learn how to handle form submissions and data mutations with Next.js. - [Data Fetching Patterns and Best Practices](https://nextjs.org/docs/14/app/building-your-application/data-fetching/patterns): Learn about common data fetching patterns in React and Next.js. - [Rendering](https://nextjs.org/docs/14/app/building-your-application/rendering): Learn the differences between Next.js rendering environments, strategies, and runtimes. - [Server Components](https://nextjs.org/docs/14/app/building-your-application/rendering/server-components): Learn how you can use React Server Components to render parts of your application on the server. - [Client Components](https://nextjs.org/docs/14/app/building-your-application/rendering/client-components): Learn how to use Client Components to render parts of your application on the client. - [Composition Patterns](https://nextjs.org/docs/14/app/building-your-application/rendering/composition-patterns): Recommended patterns for using Server and Client Components. - [Edge and Node.js Runtimes](https://nextjs.org/docs/14/app/building-your-application/rendering/edge-and-nodejs-runtimes): Learn about the switchable runtimes (Edge and Node.js) in Next.js. - [Caching](https://nextjs.org/docs/14/app/building-your-application/caching): An overview of caching mechanisms in Next.js. - [Styling](https://nextjs.org/docs/14/app/building-your-application/styling): Learn the different ways you can style your Next.js application. - [CSS Modules](https://nextjs.org/docs/14/app/building-your-application/styling/css-modules): Style your Next.js Application with CSS Modules. - [Tailwind CSS](https://nextjs.org/docs/14/app/building-your-application/styling/tailwind-css): Style your Next.js Application using Tailwind CSS. - [CSS-in-JS](https://nextjs.org/docs/14/app/building-your-application/styling/css-in-js): Use CSS-in-JS libraries with Next.js - [Sass](https://nextjs.org/docs/14/app/building-your-application/styling/sass): Style your Next.js application using Sass. - [Optimizing](https://nextjs.org/docs/14/app/building-your-application/optimizing): Optimize your Next.js application for best performance and user experience. - [Images](https://nextjs.org/docs/14/app/building-your-application/optimizing/images): Optimize your images with the built-in `next/image` component. - [Fonts](https://nextjs.org/docs/14/app/building-your-application/optimizing/fonts): Optimize your application's web fonts with the built-in `next/font` loaders. - [Scripts](https://nextjs.org/docs/14/app/building-your-application/optimizing/scripts): Optimize 3rd party scripts with the built-in Script component. - [Metadata](https://nextjs.org/docs/14/app/building-your-application/optimizing/metadata): Use the Metadata API to define metadata in any layout or page. - [Static Assets](https://nextjs.org/docs/14/app/building-your-application/optimizing/static-assets): Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here. - [Bundle Analyzer](https://nextjs.org/docs/14/app/building-your-application/optimizing/bundle-analyzer): Analyze the size of your JavaScript bundles using the @next/bundle-analyzer plugin. - [Lazy Loading](https://nextjs.org/docs/14/app/building-your-application/optimizing/lazy-loading): Lazy load imported libraries and React Components to improve your application's loading performance. - [Analytics](https://nextjs.org/docs/14/app/building-your-application/optimizing/analytics): Measure and track page performance using Next.js Speed Insights - [Instrumentation](https://nextjs.org/docs/14/app/building-your-application/optimizing/instrumentation): Learn how to use instrumentation to run code at server startup in your Next.js app - [OpenTelemetry](https://nextjs.org/docs/14/app/building-your-application/optimizing/open-telemetry): Learn how to instrument your Next.js app with OpenTelemetry. - [Third Party Libraries](https://nextjs.org/docs/14/app/building-your-application/optimizing/third-party-libraries): Optimize the performance of third-party libraries in your application with the `@next/third-parties` package. - [Configuring](https://nextjs.org/docs/14/app/building-your-application/configuring): Learn how to configure your Next.js application. - [TypeScript](https://nextjs.org/docs/14/app/building-your-application/configuring/typescript): Next.js provides a TypeScript-first development experience for building your React application. - [ESLint](https://nextjs.org/docs/14/app/building-your-application/configuring/eslint): Next.js provides an integrated ESLint experience by default. These conformance rules help you use Next.js in an optimal way. - [Environment Variables](https://nextjs.org/docs/14/app/building-your-application/configuring/environment-variables): Learn to add and access environment variables in your Next.js application. - [Absolute Imports and Module Path Aliases](https://nextjs.org/docs/14/app/building-your-application/configuring/absolute-imports-and-module-aliases): Configure module path aliases that allow you to remap certain import paths. - [MDX](https://nextjs.org/docs/14/app/building-your-application/configuring/mdx): Learn how to configure MDX to write JSX in your markdown files. - [src Directory](https://nextjs.org/docs/14/app/building-your-application/configuring/src-directory): Save pages under the `src` directory as an alternative to the root `pages` directory. - [Draft Mode](https://nextjs.org/docs/14/app/building-your-application/configuring/draft-mode): Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with App Router here. - [Content Security Policy](https://nextjs.org/docs/14/app/building-your-application/configuring/content-security-policy): Learn how to set a Content Security Policy (CSP) for your Next.js application. - [Testing](https://nextjs.org/docs/14/app/building-your-application/testing): Learn how to set up Next.js with four commonly used testing tools — Cypress, Playwright, Vitest, and Jest. - [Vitest](https://nextjs.org/docs/14/app/building-your-application/testing/vitest): Learn how to set up Vitest with Next.js for Unit Testing. - [Jest](https://nextjs.org/docs/14/app/building-your-application/testing/jest): Learn how to set up Jest with Next.js for Unit Testing and Snapshot Testing. - [Playwright](https://nextjs.org/docs/14/app/building-your-application/testing/playwright): Learn how to set up Playwright with Next.js for End-to-End (E2E) testing. - [Cypress](https://nextjs.org/docs/14/app/building-your-application/testing/cypress): Learn how to set up Cypress with Next.js for End-to-End (E2E) and Component Testing. - [Authentication](https://nextjs.org/docs/14/app/building-your-application/authentication): Learn how to implement authentication in Next.js, covering best practices, securing routes, authorization techniques, and session management. - [Deploying](https://nextjs.org/docs/14/app/building-your-application/deploying): Learn how to deploy your Next.js app to production, either managed or self-hosted. - [Production Checklist](https://nextjs.org/docs/14/app/building-your-application/deploying/production-checklist): Recommendations to ensure the best performance and user experience before taking your Next.js application to production. - [Static Exports](https://nextjs.org/docs/14/app/building-your-application/deploying/static-exports): Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server. - [Upgrading](https://nextjs.org/docs/14/app/building-your-application/upgrading): Learn how to upgrade to the latest versions of Next.js. - [Codemods](https://nextjs.org/docs/14/app/building-your-application/upgrading/codemods): Use codemods to upgrade your Next.js codebase when new features are released. - [App Router Migration](https://nextjs.org/docs/14/app/building-your-application/upgrading/app-router-migration): Learn how to upgrade your existing Next.js application from the Pages Router to the App Router. - [Version 14](https://nextjs.org/docs/14/app/building-your-application/upgrading/version-14): Upgrade your Next.js Application from Version 13 to 14. - [Migrating from Vite](https://nextjs.org/docs/14/app/building-your-application/upgrading/from-vite): Learn how to migrate your existing React application from Vite to Next.js. ## [API Reference](https://nextjs.org/docs/14/app/api-reference) Next.js API Reference for the App Router. - [Components](https://nextjs.org/docs/14/app/api-reference/components): API Reference for Next.js built-in components. - [Font](https://nextjs.org/docs/14/app/api-reference/components/font): Optimizing loading web fonts with the built-in `next/font` loaders. - [](https://nextjs.org/docs/14/app/api-reference/components/image): Optimize Images in your Next.js Application using the built-in `next/image` Component. - [](https://nextjs.org/docs/14/app/api-reference/components/link): Enable fast client-side navigation with the built-in `next/link` component. - [