Skip to content

Changesets vs Lerna

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

Changesets

Open source · MIT

A tool that tracks package changes, bumps versions, and writes changelogs, mainly for monorepos.

Lerna

Open source · MIT

A build and publish tool for managing several JavaScript/TypeScript packages in one repository.

The short answer

Choose Changesets if you need…

  • Teams maintaining a monorepo with several interdependent packages
  • Maintainers who want release notes generated from contributor-written change descriptions
  • Projects that publish packages to a registry and want versioning handled consistently

Choose Lerna if you need…

  • JavaScript or TypeScript teams maintaining several related npm packages in one repository
  • Maintainers who need to version and publish multiple packages together
  • Developers who already work in a monorepo layout and want tooling for it

Side-by-side

ChangesetsLerna
TypeDev toolDev tool
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars12.6k36k
Setup difficultyIntermediateIntermediate
How you get itInstall with a package managerInstall with a package manager
Main languageTypeScriptTypeScript
Last code update5 days ago5 days ago

What each one is

Changesets

Changesets helps teams describe their changes and then handles the release work: updating package versions, writing changelogs, and publishing. Contributors add a short changeset file that says how each change should be released. It is built with a focus on monorepos, where several packages depend on each other, and the README says the workflow can also benefit single-package repos.

Lerna

Lerna is a command-line tool for projects that keep multiple JavaScript or TypeScript packages in a single repository, called a monorepo. It helps build those packages and publish them to npm. The README describes it as a fast, modern build system, but it also notes that the project changed stewardship to Nx, so the README points readers to Nx resources for ongoing support.

Best for

Changesets

  • Teams maintaining a monorepo with several interdependent packages
  • Maintainers who want release notes generated from contributor-written change descriptions
  • Projects that publish packages to a registry and want versioning handled consistently

Lerna

  • JavaScript or TypeScript teams maintaining several related npm packages in one repository
  • Maintainers who need to version and publish multiple packages together
  • Developers who already work in a monorepo layout and want tooling for it

Strengths

Changesets

  • Focused on monorepos and keeping dependent packages in sync
  • Changes are declared by contributors, so release notes come from intent rather than guesswork
  • MIT licensed and widely used, with a large star count and active development

Lerna

  • Widely starred and used, with an MIT license that permits commercial use
  • Covers both building and publishing packages in a monorepo
  • Documentation site and getting-started guide are linked from the README

Not ideal for

Changesets

  • Projects that do not publish packages and do not need versioning, since the tool is built around releases
  • People who want a fully automatic commit-message-based release flow, because the README describes contributors declaring changes explicitly
  • Anyone needing the stable v2 code, since this branch is the v3 development branch per the README

Lerna

  • Single-package projects, since the tool is built for managing multiple packages (reason: little benefit without a monorepo)
  • Teams that need guaranteed current direction for the project, since the README says stewardship moved to Nx (reason: check the linked Nx announcement before adopting)
  • Users looking for a non-JavaScript build tool (reason: the README covers only JavaScript/TypeScript packages)

Trade-offs

Changesets

  • The repository's main branch is the v3 development branch, so the v2 maintenance branch is needed for v2 code
  • The README is truncated here, so detailed setup and configuration are not covered in this analysis
  • Requires contributors to remember to add a changeset with each change

Lerna

  • The README states stewardship changed to Nx, so long-term direction may differ from the original project
  • The README is truncated and gives limited detail on specific commands or configuration
  • Its scope is narrow: it targets monorepos of JavaScript and TypeScript packages only

Getting started

Changesets

Install the CLI as a dev dependency

npm install -D @changesets/cli
Step-by-step guide: how to use Changesets

Lerna

Clone the repository

git clone https://github.com/lerna/lerna
Step-by-step guide: how to use Lerna

Frequently asked questions

What is the difference between Changesets and Lerna?

Changesets: A tool that tracks package changes, bumps versions, and writes changelogs, mainly for monorepos. Lerna: A build and publish tool for managing several JavaScript/TypeScript packages in one repository. Changesets suits teams maintaining a monorepo with several interdependent packages, while Lerna suits javascript or typescript teams maintaining several related npm packages in one repository.

Are Changesets and Lerna free?

Changesets: Free and open source. Lerna: Free and open source.

Is Changesets or Lerna more popular?

Lerna has more GitHub stars (36k) than Changesets (12.6k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to Changesets and Lerna?

Other options people compare them with include semantic-release, Nx, Turborepo.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.