2022-12-06 10:29:47 -05:00

72 lines
3.2 KiB
Markdown

# 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)