Most developers know Yarn. Fewer know there are effectively two completely different tools sharing the same name.

Yarn package manager
Yarn Classic (v1)
Released in 2016 by Facebook as a faster, more reliable alternative to npm. It became the industry standard almost overnight. In 2020, the team announced it was entering maintenance mode — no new features, security patches only.
It's still extremely common in production environments, especially in older CI/CD pipelines and enterprise repos.
Yarn Berry (v2, v3, v4)
A complete rewrite. Same name, different tool. The headline feature
was Plug'n'Play (PnP) — eliminating node_modules entirely:
- No more
node_modulesfolder - New config format —
.yarnrc.ymlinstead of.yarnrc - Incompatible lockfile format
- Faster installs, stricter dependency resolution
The problem? PnP broke a lot of tools that assumed node_modules
exists. Migration wasn't an upgrade — it was closer to switching
package managers entirely.
Why teams stay on v1
The answer is simple: it works. And in production, "it works" is often good enough. Migration carries risk, requires CI/CD updates, and somebody has to own it.
How to check
yarn --version1.x — you're on Classic. 2.x, 3.x, or 4.x — Berry.
The bigger picture
Yarn is one example of a broader pattern in software development — tools evolve, ecosystems fragment and production environments quietly fall behind. Not out of negligence, but because stability has real value.
The next time someone pitches a project as state of the art, it's worth asking: state of the art as of when?
