Evaluate and replace nx with an alternative
#3368
Replies: 4 comments 5 replies
|
+1 for moonrepo as it supports a wider number of languages.
Would need Dart Support |
|
Regarding rush.js, all of its core dependencies come from the RushJS ecosystem itself. After going through their docs, it feels more focused on open-source development, with comprehensive configuration guides, solid docs, an active community, and the advantage that we already have people (in cross functional teams) with prior Rush experience. So, +1 for doing a PoC with Rush and evaluating how well it fits our requirements. Also, if it's possible, maybe we could even vibe-code a dependency-free lightweight solution just for frontend build caching 😃? |
RushThere are two big disadvantages we should consider;
One major feature in MoonSince we do not focus on GO caching, and we are moving SDKs out of the Monorepo, I do not recommend considering DIY toolI am strongly against this, considering the maintenance overhead. And we may have questions like, which team should own and maintain the tool? Turbo
Considering the above points, I am +1 towards |
|
The conclusion is to go ahead with Turborepo. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Current Limitation
ThunderID currently uses
Nxas the monorepo orchestration tool. While Nx provides a rich set of features, it also introduces a significant dependency footprint and maintenance overhead. Recent dependency audits have reported a growing number of vulnerabilities originating from Nx and its transitive dependencies, resulting in increased noise during security reviews and dependency management.In addition, many of Nx's advanced features may not be fully utilized within the project, and we are just using it for build
cachingandaffectedcommands.The evaluation should consider:
If a suitable alternative is identified, create a migration plan and replace Nx with the selected solution.
Suggestions
Evaluate alternative monorepo solutions and determine whether a lighter-weight or lower-maintenance approach would better suit ThunderID's requirements.
Potential alternatives
Turborepo
https://turborepo.dev
🟢 Pros
Rust based
Zero runtime JS dependencies
Very fast incremental builds with remote caching
Great DX for Next.js / Vercel ecosystems
Simple configuration compared to older monorepo tools
Strong caching model (local + remote)
🔴 Cons
Moonrepo
https://moonrepo.dev
🟢 Pros
🔴 Cons
Rush
https://rushjs.io/
🟢 Pros
🔴 Cons
Open Questions
All reactions