Turborepo vs Lerna: Why Most Teams Switched
(and When Lerna Still Wins) 2026
Lerna had the JS monorepo space to itself from 2015-2020. Turborepo, released in 2021, took the core use case. Here is what actually happened and what it means for your 2026 tooling decision.
A Brief History
Lerna v1-v3 dominates
Lerna invented the JS monorepo workflow: bootstrap dependencies, version packages, publish to npm. Used by Babel, Jest, React, and many enterprise teams. No alternatives.
Lerna stagnates
Maintenance slows. Lerna v4 is released but the core maintainer signals burnout. npm workspaces and yarn workspaces mature, making lerna bootstrap less necessary. Teams start hitting Lerna's limitations: no build caching, no incremental builds.
Turborepo launches (Vercel acquires)
Jared Palmer releases Turborepo v1 and immediately sells to Vercel. Key differentiator: build caching with zero config on top of standard npm/yarn workspaces. No replacement for lerna publish, but fixes the build speed problem Lerna never addressed.
Lerna deprecation notice
The original maintainer publishes a notice that Lerna is deprecated. This is widely covered. Most teams read 'Lerna is dead' and start migrating.
Nrwl rescues Lerna
Nrwl (the Nx company) takes over Lerna maintenance. They announce Lerna v5 with Nx integration for build caching. Lerna is not dead.
Lerna v6-v8: Nx delegation
Lerna adds useNx flag to delegate build tasks to Nx. The tool pivots to a publishing wrapper on top of Nx. Core user base moves to Nx or Turborepo for builds, keeps Lerna for publishing.
Lerna v9: bootstrap/add/link removed
Lerna v9 formally removes the commands that made it a monorepo manager (lerna bootstrap, lerna add, lerna link). These were the original value. The remaining scope: lerna version and lerna publish.
What Turborepo Took from Lerna
Turborepo solved the problem Lerna never addressed: build caching. Lerna run build ran every package sequentially or in parallel but always rebuilt from scratch. Turborepo adds content-addressable caching, so unchanged packages are skipped.
Combined with Vercel Remote Cache (free), Turborepo gave teams 50-90% build time reductions with a single configuration file (turbo.json). Lerna had no answer to this.
What Lerna v9 Still Does Best
Lerna v9's scope is narrow but real: publishing workflows. lerna version handles conventional commits, bumps package versions following semver, creates git tags, and generates CHANGELOG.md entries. lerna publish handles npm publish for all changed packages.
Turborepo has no equivalent for the version + changelog + publish workflow. Neither does Nx out of the box (though nx release covers some of this in Nx 17+).
The "Use Both" Pattern
Some teams use Turborepo (or Nx) for builds and Lerna for publishing. Turborepo handles the task execution and caching. Lerna handles version bumping and npm publish.
This pattern is valid but adding friction. As of 2026, most teams are consolidating: Nx 17+ has nx release which covers the publish workflow. Teams on Turborepo for builds are using Changesets for versioning.
Decision: What Should You Use in 2026?
Starting a new JS/TS monorepo
Turborepo (fast) or Nx (platform). Not Lerna.
Existing Lerna v3-v5 project, need to modernise builds
Add Nx (nx init handles Lerna migration). Lerna publishing commands keep working.
Only need version bumping + npm publish
Lerna v9 is fine. Also consider Changesets (no Lerna needed).
Large team needing distributed builds
Nx with Nx Agents. Turborepo doesn't distribute across machines.
Want to avoid any vendor tooling opinion
Changesets for versioning, Turborepo for builds. Both are minimal.