jazelle VS nx

Compare jazelle vs nx and see what are their differences.

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
jazelle nx
7 346
97 21,971
- 2.6%
6.4 10.0
5 months ago 5 days ago
JavaScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

jazelle

Posts with mentions or reviews of jazelle. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-20.
  • Advice on migrating from multirepo to monorepo
    2 projects | /r/ExperiencedDevs | 20 Jan 2023
    But we also have teams working full time on monorepo stuff. I wrote tooling myself to bridge some of the gaps in the web ecosystem (e.g. we integrate w/ bazel to compute build graphs), but one still needs to integrate that w/ CI. Our solution uses dynamic pipeline generation, spot instances for elastic compute power, a bunch of crazy optimizations, a test flakiness detection system, a merge queue system (because we have hundreds of commits landing daily and HEAD must be green at all times)... A lot of this has no turn-key open source / commercial offerings and you're gonna need to invest time into integrations w/ the ones that do. Monorepos can be quite a commitment.
  • Turborepo 1.2: High-performance build system for monorepos
    6 projects | news.ycombinator.com | 8 Apr 2022
    Yes, it's possible. At Uber we run a 1000+ package monorepo w/ Bazel and Yarn. Someone else mentioned rules_nodejs if you want to go with the popular option that is more or less in line with the Bazel philosophy[0]. We use a project called jazelle[1] that makes some different trade-offs that lets us do some interesting things like not busting the whole world's cache when lockfile changes, and source code generation (including automatic syncing of BUILD files to package.json)

    [0] https://news.ycombinator.com/item?id=30959893

    [1] https://github.com/uber-web/jazelle

  • [AskJS] question about your monorepo workflow
    3 projects | /r/javascript | 21 Oct 2021
    I maintain the web monorepo at Uber (a fairly large codebase w/ ~1000 packages). Our monorepo uses a tool I wrote called jazelle that wraps over yarn workspaces and bazel.
  • [AskJS] How should mono repo test status/coverage in CI be handled?
    1 project | /r/javascript | 15 Sep 2021
    3) Yes, you can have granular smart tests. Again, tooling can help. We use Bazel (I wrote a JS-oriented wrapper on top of it called jazelle), which can compute dependency graphs and only test things that changed. For example, with my tool, you can have a master job call jazelle changes to figure out what projects need to be checked given a git diff, and then we distribute the workload across multiple machines to parallelize tests/lint/bundle size analysis/etc (we can do a full run of several thousand compute hours for ~1000 packages in about 20 wall clock minutes). Other similar tools exist for dep graph computation, e.g. turborepo, and to some extent Rush and yarn workspaces + foreach, which might be sufficient for your scale.
  • From a Single Repo, to Multi-Repos, to Monorepo, to Multi-Monorepo
    7 projects | news.ycombinator.com | 19 Aug 2021
    Nice write-up. I have explored different repo strategies quite a bit myself in the course of a few efforts that I've been involved with. On one, we originally had a monolythic framework and everything the article said about cons is pretty spot on. However, I'll qualify by saying that I think the problems come less because of the nature of monolyths in general and more because of lack of experience with modular design.

    We then wrote a new framework using a monorepo approach, with separate packages using Lerna. The problem here was tooling. Dependent builds were not supported and I've had to delete node_modules more times than I'd ever cared to count. The article talks about some github specific problems (namely, the issues list being a hodge-podge of every disparate package). We tried zenhub, it works ok, but it's a hack and it kinda shows. I've seen other projects organize things via tags. Ultimately it comes down to what the team is willing to put up with.

    We eventually broke the monorepo out into multi-repos, and while that solved the problem of managing issues, now the problem was that publishing packages + cross-package dependencies meant that development was slower (especially with code reviews, blocking CI tests, etc).

    Back to a monorepo using Rush.js (and later Bazel). Rush had similar limitations as Lerna (in particular, no support for dependent tests) and we ditched it soon afterwards. Bazel has a lot of features, but it takes some investment to get the most out of it. I wrote a tool to wrap over it[0] and setup things to meet our requirements.

    We tried the "multi-monorepo" approach at one point (really, this is just git submodules), and didn't get very good results. The commands that you need to run are draconian and having to remember to sync things manually all the time is prone to errors. What's worse is that since you're dealing with physically separate repos, you're back to not having good ways to do atomic integration tests across package boundaries. To be fair, I've seen projects use the submodules approach[1] and it could work depending on how stable your APIs are, but for corporate requirements, where things are always in flux, it didn't work out well.

    Which brings me to another effort I was involved with more recently: moving all our multi-repo services into a monorepo. The main rationale here is somewhat related to another reason submodules don't really fly: there's a ton of packages being, a lot of stakeholders with various degrees of commit frequency, and reconciling security updates with version drift is a b*tch.

    For this effort we also invested into using Bazel. One of the strengths of this tool is how you can specify dependent tasks, for example "if I touch X file, only run the tests that are relevant". This is a big deal, because at 600+ packages, a full CI run consumes dozens of hours worth of compute time. The problem with monorepos comes largely from the sheer scale: bumping something to the next major version requires codemods, and there's always someone doing some crazy thing you never anticipated.

    With that said, monorepos are not a panacea. A project from a sibling team is a components library and it uses a single repo approach. This means a single version to manage for the entire set of components. You may object that things are getting bumped even when they don't need to, but it turns out this is actually very well received by consumers, because it's far easier to upgrade than having to figure out the changelog of dozens of separate packages.

    I used a single repo monolyth-but-actually-modular setup for my OSS project[2] and that has worked well for me, for similar reasons: people appreciate curation, and since we want to avoid willy-nilly breaking changes, a single all-emcompassing version scheme encourages development to work towards stability rather than features-for-features-sake.

    My takeaway is that multi-repos cause a lot of headaches both for framework authorship and for service development, that single repos can be a great poor-mans choice for framework authors, and monorepos - with the appropriate amount of investment in tooling - have good multiplicative potential for complex project clusters. YMMV.

    [0] https://github.com/uber-web/jazelle

    [1] https://github.com/sebbekarlsson/fjb/tree/master/external

    [2] https://mithril.js.org/

  • JavaScript Monorepos with Lerna
    1 project | /r/javascript | 20 Jun 2021
    Bazel is still our bread and butter at Uber. Nothing in the JS space comes close in terms of features. I wrote a tool that wraps over it called jazelle
  • [AskJS] Is it just me or is core-js fundamentally broken?
    5 projects | /r/javascript | 5 May 2021
    Oh sorry, we just moved it here https://github.com/uber-web/jazelle

nx

Posts with mentions or reviews of nx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-20.
  • 🍒 Cherry-Picked Nx v18.3 Updates
    2 projects | dev.to | 20 Apr 2024
    One notable feature is the ability to remember selected tabs. When you select a specific tab on a page, all other tabs on the page with the same name will also be selected. This selection will persist during your next visit to nx.dev.
  • Pitfalls of Deploying Hono Js App on Vercel
    3 projects | dev.to | 16 Apr 2024
    Hono does have a template application for Vercel, but in my case, my requirements were different (aren't they always 😅). I was working in a monorepo (using nx) because I wanted to manage my libs, tests, and examples all together in a single place, instead of having different repos.
  • 🍒 Cherry-Picked Nx v18.1 Updates
    1 project | dev.to | 5 Apr 2024
  • How to setup semantic release with GitHub Actions.
    2 projects | dev.to | 29 Mar 2024
    Recently, My coworker is using Nx to automate his workflow, including automated release using semantic version. I found this method quite useful, so I want to re-implement on single GitHub repositories (without Nx).
  • 🩹 Nx Crystal Plugin Picking the Essentials
    1 project | dev.to | 23 Mar 2024
    I started a discussion on GitHub concerning that subject: Design Nx Plugin Project Crystal
  • Things I learned while building projects with NX
    5 projects | dev.to | 18 Mar 2024
    Nx
  • Episode 24/09: Testing without TestBed, SSR & Hydration
    3 projects | dev.to | 16 Mar 2024
  • Announcing AnalogJS 1.0 🚀
    5 projects | dev.to | 14 Mar 2024
    We are looking for companies to partner with on the Analog project to support development of the project. Thanks to Snyder Technologies for being an early adopter and promoter of Analog, Nx for joining us as a sponsor, House of Angular, and many other backers of the project.
  • Storybook 8
    6 projects | dev.to | 12 Mar 2024
    Additionally, thank you to all our community launch partners across the frontend ecosystem for helping us bring Storybook 8 to the world! Thanks to Chromatic, Figma, ViteConf, Omlet, DivRiots, story.to.design, StackBlitz, UXpin, Nx, Mock Service Worker, Anima, Zeplin, zeroheight, kickstartDS, and Kendo UI.
  • ⏰ It’s time to talk about Import Map, Micro Frontend, and Nx Monorepo
    9 projects | dev.to | 11 Mar 2024
    The advent of esbuild, the native support for ES Modules in browsers, the widespread adoption of import map, the emergence of tools like Native Federation, and the Nx ecosystem all combine to forge a flexible and well-maintained Micro Frontend Architecture.

What are some alternatives?

When comparing jazelle and nx you can also consider the following projects:

rules_nodejs - NodeJS toolchain for Bazel.

turborepo - Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turborepo and Turbopack. [Moved to: https://github.com/vercel/turbo]

fusionjs - Modern framework for fast, powerful React apps

single-spa - The router for easy microfrontends

babili - :scissors: An ES6+ aware minifier based on the Babel toolchain (beta)

vite - Next generation frontend tooling. It's fast!

event-dispatcher - Provides tools that allow your application components to communicate with each other by dispatching events and listening to them

lerna - :dragon: Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.

create-react-app - Set up a modern web app by running one command.

fjb - fast javascript bundler :package:

pnpm - Fast, disk space efficient package manager