# Source: https://nextjs.org/docs/pages/getting-started.md

# Source: https://nextjs.org/docs/app/getting-started.md

# Source: https://nextjs.org/docs/pages/getting-started.md

# Source: https://nextjs.org/docs/app/getting-started.md

# Source: https://nextjs.org/docs/pages/getting-started.md

# Source: https://nextjs.org/docs/app/getting-started.md

# Source: https://nextjs.org/docs/pages/getting-started.md

# Source: https://nextjs.org/docs/app/getting-started.md

# Source: https://nextjs.org/docs/pages/getting-started.md

# Source: https://nextjs.org/docs/app/getting-started.md

# Getting Started
@doc-version: 16.0.4


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.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](/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](/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](/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](/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](/docs/app/getting-started/cache-components.md)
  - Learn how to use Cache Components and combine the benefits of static and dynamic rendering.
- [Fetching Data](/docs/app/getting-started/fetching-data.md)
  - Learn how to fetch data and stream content that depends on data.
- [Updating Data](/docs/app/getting-started/updating-data.md)
  - Learn how to mutate data using Server Functions.
- [Caching and Revalidating](/docs/app/getting-started/caching-and-revalidating.md)
  - Learn how to cache and revalidate data in your application.
- [Error Handling](/docs/app/getting-started/error-handling.md)
  - Learn how to display expected errors and handle uncaught exceptions.
- [CSS](/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](/docs/app/getting-started/images.md)
  - Learn how to optimize images in Next.js
- [Font Optimization](/docs/app/getting-started/fonts.md)
  - Learn how to optimize fonts in Next.js
- [Metadata and OG images](/docs/app/getting-started/metadata-and-og-images.md)
  - Learn how to add metadata to your pages and create dynamic OG images.
- [Route Handlers](/docs/app/getting-started/route-handlers.md)
  - Learn how to use Route Handlers
- [Proxy](/docs/app/getting-started/proxy.md)
  - Learn how to use Proxy
- [Deploying](/docs/app/getting-started/deploying.md)
  - Learn how to deploy your Next.js application.
- [Upgrading](/docs/app/getting-started/upgrading.md)
  - Learn how to upgrade your Next.js application to the latest version or canary.