# Next.js Documentation — Pages Router > Reference and guides for Next.js 16.2.10 — the React framework for building full-stack web applications. Sections cover Getting Started, Pages Router, Architecture, and Community Resources. @doc-version: 16.2.10 @doc-version-notes: Some features may have extended or refined behavior in minor or patch releases ## [Getting Started](https://nextjs.org/docs/pages/getting-started) Learn how to create full-stack web applications with Next.js with the Pages Router. - [Installation](https://nextjs.org/docs/pages/getting-started/installation): How to create a new Next.js application with `create-next-app`. Set up TypeScript, ESLint,and configure your `next.config.js` file. - [Project Structure](https://nextjs.org/docs/pages/getting-started/project-structure): Learn about the folder and file conventions in a Next.js project, and how to organize your project. - [Images](https://nextjs.org/docs/pages/getting-started/images): Optimize your images with the built-in `next/image` component. - [Fonts](https://nextjs.org/docs/pages/getting-started/fonts): Learn how to use fonts in Next.js - [CSS](https://nextjs.org/docs/pages/getting-started/css): Learn about the different ways to add CSS to your application, including CSS Modules, Global CSS, Tailwind CSS, and more. - [Deploying](https://nextjs.org/docs/pages/getting-started/deploying): Learn how to deploy your Next.js application. ## [Guides](https://nextjs.org/docs/pages/guides) Learn how to implement common UI patterns and use cases using Next.js - [Analytics](https://nextjs.org/docs/pages/guides/analytics): Measure and track page performance using Next.js - [Authentication](https://nextjs.org/docs/pages/guides/authentication): Learn how to implement authentication in Next.js, covering best practices, securing routes, authorization techniques, and session management. - [Babel](https://nextjs.org/docs/pages/guides/babel): Extend the babel preset added by Next.js with your own configs. - [CI Build Caching](https://nextjs.org/docs/pages/guides/ci-build-caching): Learn how to configure CI to cache Next.js builds - [Content Security Policy](https://nextjs.org/docs/pages/guides/content-security-policy): Learn how to set a Content Security Policy (CSP) for your Next.js application. - [CSS-in-JS](https://nextjs.org/docs/pages/guides/css-in-js): Use CSS-in-JS libraries with Next.js - [Custom Server](https://nextjs.org/docs/pages/guides/custom-server): Start a Next.js app programmatically using a custom server. - [Debugging](https://nextjs.org/docs/pages/guides/debugging): Learn how to debug your Next.js application with VS Code or Chrome DevTools. - [Draft Mode](https://nextjs.org/docs/pages/guides/draft-mode): Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with Pages Router. - [Environment Variables](https://nextjs.org/docs/pages/guides/environment-variables): Learn to add and access environment variables in your Next.js application. - [Forms](https://nextjs.org/docs/pages/guides/forms): Learn how to handle form submissions and data mutations with Next.js. - [ISR](https://nextjs.org/docs/pages/guides/incremental-static-regeneration): Learn how to create or update static pages at runtime with Incremental Static Regeneration. - [Instrumentation](https://nextjs.org/docs/pages/guides/instrumentation): Learn how to use instrumentation to run code at server startup in your Next.js app - [Internationalization](https://nextjs.org/docs/pages/guides/internationalization): Next.js has built-in support for internationalized routing and language detection. Learn more here. - [Lazy Loading](https://nextjs.org/docs/pages/guides/lazy-loading): Lazy load imported libraries and React Components to improve your application's overall loading performance. - [MDX](https://nextjs.org/docs/pages/guides/mdx): Learn how to configure MDX to write JSX in your markdown files. - [Migrating](https://nextjs.org/docs/pages/guides/migrating): Learn how to migrate from popular frameworks to Next.js - [App Router](https://nextjs.org/docs/pages/guides/migrating/app-router-migration): Learn how to upgrade your existing Next.js application from the Pages Router to the App Router. - [Create React App](https://nextjs.org/docs/pages/guides/migrating/from-create-react-app): Learn how to migrate your existing React application from Create React App to Next.js. - [Vite](https://nextjs.org/docs/pages/guides/migrating/from-vite): Learn how to migrate your existing React application from Vite to Next.js. - [Multi-Zones](https://nextjs.org/docs/pages/guides/multi-zones): 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/pages/guides/open-telemetry): Learn how to instrument your Next.js app with OpenTelemetry. - [Package Bundling](https://nextjs.org/docs/pages/guides/package-bundling): Learn how to optimize your application's server and client bundles. - [PostCSS](https://nextjs.org/docs/pages/guides/post-css): Extend the PostCSS config and plugins added by Next.js with your own. - [Preview Mode](https://nextjs.org/docs/pages/guides/preview-mode): Next.js has the preview mode for statically generated pages. You can learn how it works here. - [Production](https://nextjs.org/docs/pages/guides/production-checklist): Recommendations to ensure the best performance and user experience before taking your Next.js application to production. - [Redirecting](https://nextjs.org/docs/pages/guides/redirecting): Learn the different ways to handle redirects in Next.js. - [Sass](https://nextjs.org/docs/pages/guides/sass): Learn how to use Sass in your Next.js application. - [Scripts](https://nextjs.org/docs/pages/guides/scripts): Optimize 3rd party scripts with the built-in Script component. - [Self-Hosting](https://nextjs.org/docs/pages/guides/self-hosting): Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports). - [Static Exports](https://nextjs.org/docs/pages/guides/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. - [Tailwind CSS](https://nextjs.org/docs/pages/guides/tailwind-v3-css): Style your Next.js Application using Tailwind CSS. - [Testing](https://nextjs.org/docs/pages/guides/testing): Learn how to set up Next.js with three commonly used testing tools — Cypress, Playwright, Vitest, and Jest. - [Cypress](https://nextjs.org/docs/pages/guides/testing/cypress): Learn how to set up Next.js with Cypress for End-to-End (E2E) and Component Testing. - [Jest](https://nextjs.org/docs/pages/guides/testing/jest): Learn how to set up Next.js with Jest for Unit Testing. - [Playwright](https://nextjs.org/docs/pages/guides/testing/playwright): Learn how to set up Next.js with Playwright for End-to-End (E2E) and Integration testing. - [Vitest](https://nextjs.org/docs/pages/guides/testing/vitest): Learn how to set up Next.js with Vitest and React Testing Library - two popular unit testing libraries. - [Third Party Libraries](https://nextjs.org/docs/pages/guides/third-party-libraries): Optimize the performance of third-party libraries in your application with the `@next/third-parties` package. - [Upgrading](https://nextjs.org/docs/pages/guides/upgrading): Learn how to upgrade to the latest versions of Next.js. - [Codemods](https://nextjs.org/docs/pages/guides/upgrading/codemods): Use codemods to upgrade your Next.js codebase when new features are released. - [Version 10](https://nextjs.org/docs/pages/guides/upgrading/version-10): Upgrade your Next.js Application from Version 9 to Version 10. - [Version 11](https://nextjs.org/docs/pages/guides/upgrading/version-11): Upgrade your Next.js Application from Version 10 to Version 11. - [Version 12](https://nextjs.org/docs/pages/guides/upgrading/version-12): Upgrade your Next.js Application from Version 11 to Version 12. - [Version 13](https://nextjs.org/docs/pages/guides/upgrading/version-13): Upgrade your Next.js Application from Version 12 to 13. - [Version 14](https://nextjs.org/docs/pages/guides/upgrading/version-14): Upgrade your Next.js Application from Version 13 to 14. - [Version 9](https://nextjs.org/docs/pages/guides/upgrading/version-9): Upgrade your Next.js Application from Version 8 to Version 9. ## [Building Your Application](https://nextjs.org/docs/pages/building-your-application) Learn how to use Next.js features to build your application. - [Routing](https://nextjs.org/docs/pages/building-your-application/routing): Learn the fundamentals of routing for front-end applications with the Pages Router. - [Pages and Layouts](https://nextjs.org/docs/pages/building-your-application/routing/pages-and-layouts): Create your first page and shared layout with the Pages Router. - [Dynamic Routes](https://nextjs.org/docs/pages/building-your-application/routing/dynamic-routes): Dynamic Routes are pages that allow you to add custom params to your URLs. Start creating Dynamic Routes and learn more here. - [Linking and Navigating](https://nextjs.org/docs/pages/building-your-application/routing/linking-and-navigating): Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook. - [Custom App](https://nextjs.org/docs/pages/building-your-application/routing/custom-app): Control page initialization and add a layout that persists for all pages by overriding the default App component used by Next.js. - [Custom Document](https://nextjs.org/docs/pages/building-your-application/routing/custom-document): Extend the default document markup added by Next.js. - [API Routes](https://nextjs.org/docs/pages/building-your-application/routing/api-routes): Next.js supports API Routes, which allow you to build your API without leaving your Next.js app. Learn how it works here. - [Custom Errors](https://nextjs.org/docs/pages/building-your-application/routing/custom-error): Override and extend the built-in Error page to handle custom errors. - [Rendering](https://nextjs.org/docs/pages/building-your-application/rendering): Learn the fundamentals of rendering in React and Next.js. - [Server-side Rendering (SSR)](https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering): Use Server-side Rendering to render pages on each request. - [Static Site Generation (SSG)](https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation): Use Static Site Generation (SSG) to prerender pages at build time. - [Automatic Static Optimization](https://nextjs.org/docs/pages/building-your-application/rendering/automatic-static-optimization): Next.js automatically optimizes your app to be static HTML whenever possible. Learn how it works here. - [Client-side Rendering (CSR)](https://nextjs.org/docs/pages/building-your-application/rendering/client-side-rendering): Learn how to implement client-side rendering in the Pages Router. - [Data Fetching](https://nextjs.org/docs/pages/building-your-application/data-fetching): Next.js allows you to fetch data in multiple ways, with prerendering, server-side rendering or static-site generation, and incremental static regeneration. Learn how to manage your application data in Next.js. - [getStaticProps](https://nextjs.org/docs/pages/building-your-application/data-fetching/get-static-props): Fetch data and generate static pages with `getStaticProps`. Learn more about this API for data fetching in Next.js. - [getStaticPaths](https://nextjs.org/docs/pages/building-your-application/data-fetching/get-static-paths): Fetch data and generate static pages with `getStaticPaths`. Learn more about this API for data fetching in Next.js. - [getServerSideProps](https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props): Fetch data on each request with `getServerSideProps`. - [Client-side Fetching](https://nextjs.org/docs/pages/building-your-application/data-fetching/client-side): Learn about client-side data fetching, and how to use SWR, a data fetching React Hook library that handles caching, revalidation, focus tracking, refetching on interval and more. - [Configuring](https://nextjs.org/docs/pages/building-your-application/configuring): Learn how to configure your Next.js application. - [Error Handling](https://nextjs.org/docs/pages/building-your-application/configuring/error-handling): Handle errors in your Next.js app. ## [API Reference](https://nextjs.org/docs/pages/api-reference) Next.js API Reference for the Pages Router. - [Components](https://nextjs.org/docs/pages/api-reference/components): API Reference for Next.js built-in components in the Pages Router. - [Font](https://nextjs.org/docs/pages/api-reference/components/font): API Reference for the Font Module - [Form](https://nextjs.org/docs/pages/api-reference/components/form): Learn how to use the `