# Intro to Nx

Nx is a smart, fast and extensible build system with first class monorepo support and powerful integrations.

{% personas %}
{% persona type="javascript" title="New Package-Based Repo" url="/getting-started/package-based-repo-tutorial" %}
Create a monorepo with Yarn, NPM or PNPM. Nx makes it fast, but lets you run things your way.

- [Get started with your package-based repo](/getting-started/package-based-repo-tutorial)

{% /persona %}

{% persona type="integrated" title="New Integrated Repo" url="/getting-started/integrated-repo-tutorial" %}

Get a pre-configured setup. Nx configures your favorite frameworks and lets you focus on shipping features.

- [Get started with your integrated repo](/getting-started/integrated-repo-tutorial)

{% /persona %}

{% persona type="react" title="Create a Standalone React app" url="/getting-started/react-standalone-tutorial" %}

A modern React setup with built-in support for Vite, ESLint, Cypress and more. Think CRA but modern, always up-to-date and scalable.

- [Create a Standalone React app](/getting-started/react-standalone-tutorial)

{% /persona %}

{% persona type="angular" title="Create a Standalone Angular app" url="/getting-started/angular-standalone-tutorial" %}

A modern Angular development experience powered by advanced generators and integrations with modern tooling.

- [Create a Standalone Angular app](/getting-started/angular-standalone-tutorial)

{% /persona %}

{% /personas %}

## Adopting Nx

Coming from an existing project and want to adopt Nx? We have a few recipes to help you get started.

{% cards cols="4" %}

{% card title="Add to Existing Monorepo" description="Add Nx to your existing NPM/YARN/PNPM workspace" type="documentation" url="/recipes/adopting-nx/adding-to-monorepo" /%}

{% card title="Add to any Project" description="Add Nx to an standalone project" type="documentation" url="/recipes/adopting-nx/adding-to-existing-project" /%}

{% card title="Migrate from CRA" description="Migrate from a CRA setup and automatically switch to Vite" type="documentation" url="/recipes/adopting-nx/migration-cra" /%}

{% card title="Migrate from Angular CLI" description="Automatically migrate from the Angular CLI" type="documentation" url="/recipes/adopting-nx/migration-angular" /%}

{% /cards %}

## Why Nx?

Nx has two main goals:

- **Speed up your existing workflow with minimum effort.**
- **Provide a first-rate developer experience no matter the size of the repo.**

It achieves speed that via [computation caching](/core-features/cache-task-results), by only [run tasks affected by a given change](/core-features/run-tasks#run-tasks-affected-by-a-pr) and by being able to [distribute your task execution](/core-features/distribute-task-execution) across multiple agents in CI.

High quality DX is implemented via [code generators](/plugin-features/use-code-generators), [IDE extensions](/core-features/integrate-with-editors#integrate-with-editors) and by helping you [keep your codebase evergreen](/core-features/automate-updating-dependencies).

## How does Nx compare to other tools?

If you know other tools in the monorepo space, here is how Nx compares:

- [Monorepo.tools](https://monorepo.tools)
- [Nx and Turborepo](/more-concepts/turbo-and-nx)
