---
title: Getting Started
description: Learn how to create full-stack web applications with the Next.js App Router.
url: "https://nextjs.org/docs/app/getting-started"
docs_index: /docs/llms.txt
lastUpdated: 2025-05-02
---

> For an index of all documentation, see [/docs/llms.txt](/docs/llms.txt).

Welcome to the Next.js documentation!

This **Getting Started** section will help you create your first Next.js app and learn the core features you'll use in every project.

## Pre-requisite knowledge

Our documentation assumes some familiarity with web development. Before getting started, it'll help if you're comfortable with:

- HTML
- CSS
- JavaScript
- React

If you're new to React or need a refresher, we recommend starting with our [React Foundations course](/learn/react-foundations), and the [Next.js Foundations course](/learn/dashboard-app) that has you building an application as you learn.

## Next Steps

- [Installation](/docs/app/getting-started/installation): 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](/docs/app/getting-started/project-structure): Learn the folder and file conventions in Next.js, and how to organize your project.
- [Layouts and Pages](/docs/app/getting-started/layouts-and-pages): Learn how to create your first pages and layouts, and link between them with the Link component.
- [Linking and Navigating](/docs/app/getting-started/linking-and-navigating): 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](/docs/app/getting-started/server-and-client-components): Learn how you can use React Server and Client Components to render parts of your application on the server or the client.
- [Fetching Data](/docs/app/getting-started/fetching-data): Learn how to fetch data and stream content that depends on data.
- [Mutating Data](/docs/app/getting-started/mutating-data): Learn how to mutate data using Server Functions and Server Actions in Next.js.
- [Caching](/docs/app/getting-started/caching): Learn how to cache data and UI in Next.js
- [Revalidating](/docs/app/getting-started/revalidating): Learn how to revalidate cached data using time-based and on-demand strategies.
- [Error Handling](/docs/app/getting-started/error-handling): Learn how to display expected errors and handle uncaught exceptions.
- [CSS](/docs/app/getting-started/css): Learn about the different ways to add CSS to your application, including Tailwind CSS, CSS Modules, Global CSS, and more.
- [Image Optimization](/docs/app/getting-started/images): Learn how to optimize images in Next.js
- [Font Optimization](/docs/app/getting-started/fonts): Learn how to optimize fonts in Next.js
- [Metadata and OG images](/docs/app/getting-started/metadata-and-og-images): Learn how to add metadata to your pages and create dynamic OG images.
- [Route Handlers](/docs/app/getting-started/route-handlers): Create custom request handlers with Next.js Route Handlers using the Web Request and Response APIs.
- [Proxy](/docs/app/getting-started/proxy): Use Next.js Proxy to rewrite, redirect, modify headers, or respond directly before a request completes.
- [Deploying](/docs/app/getting-started/deploying): Learn how to deploy your Next.js application.
- [Upgrading](/docs/app/getting-started/upgrading): Learn how to upgrade your Next.js application to the latest version or canary.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/docs/llms.txt](/docs/llms.txt)