Example: I was recently working on a large project that needed a specific version of Python, and there's a lot of ways to solve that, but mise was an easy and robust one. But also, the project needed a bunch of different tools to build it, deploy it, do local dev, perform certain maintenance tasks like rotating secrets, work through certain operational runbooks, etc., and mise was an easy and robust way to solve that too. Once you know everyone on the team will have the same tools available, if a runbook would be simpler if you could assume everyone has jq installed, well, just add it your the project's mise config, and now they do. And then when I switched to working on a Java service, and then later a Node service, well, obviously mise was an easy and robust solution there too.
By contrast, I made an effort a year or two back to adopt nix, which (despite starting from a very different place) solves a lot of similar problems, but found it a bit daunting (large, complex, poorly documented, and felt hard to partially adopt), and while I love the concept of nix, as a practical matter I ended up abandoning the effort. But mise was really easy to understand, adopt, and progressively add to an existing project without unduly impacting other team members. (Example: Mise will read existing verion manager configs from tools like sdkman, which makes adopting it over time easier.)
It's got to the point now where I'm using mise in place of Homebrew or other system level package managers for basically all CLI tools. Which feels weird when I think about it, but mise genuinely just feels like the better solution. If mise has a flaw, I haven't stubbed my toe on it yet.
One of my concerns was about how well maintained Mise would be given that it's mostly a single maintainer, so I think this is good news in that respect.
Good luck to Jeff!
Edit: mise rocks.
If everyone on your team gets Mise and you're starting to feel pain at the periphery then it can definitely make sense to adopt a more elaborate toolchain orchestrator.
Now that this is a full time gig for me this has more than quadrupled—this post is a couple of weeks old. Also because I'm offering perks for the first time for people that pitch in. Still not enough to really make a living, but like I said in the post I have a few avenues I am trying out for revenue. I just hope that I can find something that maximizes the time I spend on the OSS tools while being sustainable.
https://formulae.brew.sh/analytics/install/30d/
(That said, your observation is well taken.)
The Mise website makes way more sense to me now. I suppose some artistic license is justified when you're at the cutting-edge of the CLI aesthetic and what not.
Curious given polyglot monorepo and bazel, does mise have something that solves the build graph/caching stuff that IIUC comes with Bazel or is that something that's not needed for the monorepo you help maintain?
No, because realistically, this is the opposite of what corporations want. If a project is only being maintained by one or two people, that’s a risk, pure and simple. So you look somewhere else for something that matches your needs, with a more sustainable story.
Nothing against the author, but what he’s describing is a business model - just one that’s likely to bring in a negligible amount of money. This is less about open source and more about what kinds of projects society is willing to pay people to work on.
Don't shy away from pitching companies you see using your tools to pay (note it's a sales pitch: a "here's actual value you get for your spend", not "support us, it's the moral thing to do")
Thanks for working on open source and good luck with this!
it's 12th now. It was 10th when I wrote this post. GP is just mentioning what I wrote in the blog body.
I'm a massive fan of Wireit and its caching behavior, so I'm looking for something to live up to that. I have more testing to do. I think Mise defaults to mtime-keyed cache but has an option for content hashing, which it what Wireit uses and makes it quick to undo a change and get a cache hit.
Ironically I pushed for it because it also has tasks that can be written in Bash (we have a mix of Bash scripts and Makefiles for task running across projects while I will die on the hill that shell scripts should be written in a shell script: not Makefile, not a string in a json file, not a string in a yaml file) but we never did get around to that.
mise's sources/outputs is intentionally pretty naive though. It's not bazel/buck2. That may change one day but so far it's more for writing tasks and less trying to be an authoritative build system.
For the last several years, I’ve been building and maintaining developer tools in my spare time, chiefly mise.
What started as a simple rewrite of asdf in Rust has become an incredibly successful local dev manager. mise now has 27k+ stars on GitHub and is the 10th most downloaded Homebrew formula. In fact, roughly 1% of users typing brew install are running brew install mise.
I’ve also watched mise show up in places I never expected, including OpenAI Codex Universal and NVIDIA OpenShell.
Alongside it I maintain aube (the newest of the bunch, which I’m really excited about), hk (git hook runner), pitchfork (process supervisor), fnox (secrets), usage, and a handful of smaller tools.
That has been incredibly rewarding. It’s also become a lot of work. For a while, I could do this alongside a full-time job. But as mise has grown, that has become less and less realistic. I have not been able to keep up with PR review the way I want to. I’ve had to declare notification bankruptcy every few weeks by deleting all of my GitHub notifications because I genuinely could not keep up.
I do not want mise to stall because I only have scraps of time left after work. I want it to keep getting better.
So I left Figma to work on these full time.
To keep this sustainable I’m doing it under a company: en.dev. Right now that means one person — me — working full time on mise and the rest of the portfolio. If the funds grow enough, the plan is to bring on a second maintainer so mise keeps a bus factor above 1.
My OSS work does not currently make enough money for me to live on. Right now, I make roughly:
I’m grateful for this, but it won’t be enough, so I am going to try a few different ways to make this work.
For individuals who want to support the work, I’ve set up tiered memberships at en.dev:
Members get access to a members-only Discord and a mention in mise patrons. There will also be a bi-weekly Live Q&A and bi-weekly newsletter for members.
For companies that rely on mise, I’m offering two sponsor tiers:
Sponsorship is not roadmap control, and it is not a private support contract. It is a way for companies to fund the open source infrastructure they depend on.
I’m also going to spend up to 2 days a week consulting for companies that want hands-on help adopting mise. Typical engagements look like:
mise.tomlRates are high — I’m the only person in the world who can offer this, slots are scarce, and a portion of every engagement subsidises ongoing mise development.
Longer term, I want to identify paid services I could host for teams that use mise.
I have not figured out exactly what those should be yet. I want these to be simple since my goal is sustainability so that I can build OSS tools, not building a SaaS and becoming a billionaire. If you use mise at work and have ideas for services your team would pay for, please let me know.
If you use mise and want to support that, you can become a member at en.dev, sponsor me on GitHub Sponsors, or reach out if your company is interested in sponsorship or consulting.
Thank you to everyone who has used mise, contributed to it, reported bugs, written docs, recommended it to a teammate, or sponsored the work already.