As clichéd as it is to start a "year in review" post by stating how exciting the year has been... 2022 was an exciting year for Nx! In 2022 we've seen amazing growth in Nx usage, and in the community, we hosted our first in-person event and received our first round of funding so we can focus our efforts on making Nx and Nx Cloud better than ever.
Here are some 2022 highlights.
We wanted to make this a place where interested developers can go to get a high-level overview of what a monorepo is about, what features you should be looking for and what tools are available.
Although we kick-started the page, we reached out to all the mentioned monorepo tool maintainers and got some really good feedback and complete PRs to add new tools.
The popularity of Nx exploded in 2022. We were at 1 million weekly downloads in January 2022, crossed 2 million by end of June, and, as this year comes to a close, we've exceeded 3 million! It's incredible to see such an adoption rate, but it very much motivates us to continue our path.
Around the summer of 2020 Lerna's development got slower and was mainly on the shoulders of a single developer, doing it in his free time. Lerna was in maintenance mode. At Nx, we added an easy transition with an automated migration script. It was only later around March 2022, that someone merged a PR stating in big letters that Lerna is deprecated and people should migrate to an alternative. Still, Lerna is pretty popular at 1.5 million downloads/week on NPM and developers loved the automated versioning and publishing flow.
We wanted to keep Lerna alive and reached out to its core maintainer Daniel Stockman and offered to move it forward. Nx has been open source since the beginning which gives us a lot of experience in managing projects in the open. Furthermore, Nx was already closely aligned with Lerna's functionality (with Lerna providing the added benefit of automated versioning and publishing). And obviously, we saw the potential of being able to easily modernize Lerna with features such as caching. So we did it! If you're curious, we wrote an in-depth blog post about it.
- we released Lerna v5
- we completely redesigned both the website and docs at https://lerna.js.org
- we released Lerna v6
- and made upgrading a no-brainer
Both were a huge success, and we had some fantastic in-depth talks around Nx, Lerna, monorepos and developer tooling. You can check out the recordings here:
Nrwl, the company behind Nx, is fully bootstrapped. Our work is divided into roughly 80% consulting for some of the biggest companies in the world and 20% open source work on Nx and Nx Cloud.
Seeing the traction Nx got in 2022, we wanted to invest more and hence in November 2022 we raised the first round of funding of $8.6 million.
This allows us to work mostly full-time on improving Nx and Nx Cloud. And you can see that effect already in our latest 15.3 and 15.4 releases (continue reading for that).
Here's our official fundraising announcement blog post.
Here's some more:
- Improved docs - Documentation is hard but extremely important. We invested and kept investing a lot of time in optimizing how we structure our docs to serve newcomers and expert users alike.
- Speed - we drastically improved the speed of Nx, making it the fastest monorepo solution in the frontend space.
- Improved terminal output - It might not sound as important. But if you run a command in a monorepo it usually involves running it for potentially hundreds of projects. A decent visualization of what's relevant can make a huge difference.
- Local plugins - Making Nx extensible has been a key for our community adoption. But Nx plugins go beyond and can be useful even for just automating a local Nx workspace without publishing the plugin to some public registry. Check out our docs for local plugins
- Built-in Module Federation - We added some pretty cool support for working with Webpack module federation. That includes migrating an existing Angular or React app to MF and generating new ones, including SSR support. Explore our docs for more details
- Massive improvements on Nx Console - Nx Console exceeded 1 million installations but also experienced some huge improvements. You can now visualize the graph from within VSCode, autocompletion for config files and even use it with your Lerna workspace.
- Packaged-based and Integrated repositories - There are different styles of monorepos: package-based and integrated. Nx has been strong with integrated monorepos since the beginning. This year we made Nx a first-class citizen for package-based monorepos as well. Check out the blog post on how to add Nx to a PNPM workspace monorepo.
Easy migration - We made migrating to Nx is as easy as running
nx init. Regardless of whether you want to add Nx to an existing monorepo, migrating from CRA, the Angular CLI or even a non-monorepo project. More here
- Standalone apps support - Nx's powerful generators, executors and ability to modularize a large codebase are not only valuable for a monorepo scenario. That's the main driver why in Nx 15.3 we introduced "standalone apps". Here's a short video walkthrough: https://youtu.be/qEaVzh-oBBc
- Vite support - The Vite community is growing fast, and many of our users asked for an Nx plugin coming from the core team. Even though you could use Nx in a package-based monorepo with Vite already, we wanted to make it the best experience for developing React applications with Nx and beyond. Check out our Vite docs for all the details.
Nx Watch - Watching for changes in a monorepo (especially package-based) can be tricky or require some weird hacks involving 3rd-party packages. In Nx 15.4 we added a native
nx watchcommand. See the docs.
And these are just some of the highlights. Want all the details? Check out our release blog posts: https://blog.nrwl.io/changelog/home
We have some huge plans for 2023 for Nx, Nx Cloud, Lerna, and beyond. Let's make 2023 even more epic than 2022 has been 😉.