finds.dev← search

// the find

nrwl/nx

★ 28,878 · TypeScript · MIT · updated Jun 2026

The Monorepo Platform that amplifies both developers and AI agents. Nx optimizes your builds, scales your CI, and fixes failed PRs automatically. Ship in half the time.

Nx is a mature, production-grade monorepo build system for TypeScript and polyglot codebases. It handles task orchestration, incremental builds via affected-graph analysis, remote caching, and distributed task execution across CI agents. Target audience is mid-to-large engineering teams running multiple apps or libraries in a single repo.

- The affected-graph computation is genuinely useful: Nx builds a dependency graph from imports and project config, so `nx affected --target=test` only runs tests for projects touched by a given commit. This alone saves real CI time.

- Performance-critical internals are written in Rust (see Cargo.toml and .cargo/), while the plugin/generator API stays in TypeScript—reasonable tradeoff that avoids making contributors learn Rust just to write a plugin.

- Plugin ecosystem is wide and maintained by the core team: Vite, Webpack, Jest, Vitest, ESLint, Gradle, Maven, .NET, Go all have first-party plugins with pre-configured cache input/output globs, so you don't have to figure out what to cache.

- The `npx nx init` migration path is low-friction: it wraps existing package.json scripts without forcing a rewrite, making adoption incremental rather than all-or-nothing.

- The best features—remote caching, distributed task execution, self-healing CI—require Nx Cloud, which is a paid SaaS. The open-source remote cache story is limited; you can self-host with community solutions but it's not a first-class supported path.

- Configuration surface area is large and evolving. Between project.json, nx.json, inferred targets from plugins, and executor options, debugging why a task runs or doesn't cache is non-trivial. The mental model takes real time to internalize for new team members.

- Migration between major Nx versions via `nx migrate` works well when everything is a first-party plugin, but breaks down for community plugins or custom executors—you often end up manually reconciling config changes.

- The repo itself is enormous and the build/test infrastructure requires significant CI resources to contribute to; local e2e tests are slow and often need Verdaccio + sandbox setup, which raises the barrier for external contributors fixing bugs.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →