Congratulations! I think that a lot of the value will be in the judgement of the maintainer about the marginal next feature (and saying no to all those other features) ... if software is a stream then the value is in what gets into the stream. That is an AI resistant value and if you can provide it for your project.
Good luck, and I hope it works out! Make sure you are ready to ride the roller coaster of highs and lows, as there are going to be many. Remember that your time and experience are the most valuable things you have - make sure you're in control of both.
We just started exploring Mise as a (much) simpler alternative to Nix + Bazel for a polyglot monorepo.
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.
As a proponent of both Nix and Bazel, unless you need them for a specific reason you should totally use Mise. I recommend Mise to everyone.
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.
Devenv is "mise but nix" and is very good. It is currently undergoing a big migration though, so still a few rough edges. I highly recommend checking it out if you find yourself wanting nix at all.
Likewise looking to adopt mise at work, have a PR nearly there and especially with all the LLM/skills CLIs, mise looks well positioned. I've been using it for a long time personally and is a delight to work with.
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?
I had the pleasure of working with Jeff in ... I want to say 2012 - he taught me so much, is a fabulous developer and teammate, and we had some great times together.
Man, that's a weird looking "f" in the font. Why does it have a tail? Feels like someone is trying to inject a company logo/function symbol into the otherwise normal-looking characters.
I don't know what to call this - a "freelancer launch"? It is the best executed one I've seen, though. Maybe even a black-mark on OSS if it does not go well.
10th most downloaded Homebrew formula and the maintainer makes ~$600 / month. Not very encouraging for people who are thinking to follow the same path…
Not exactly on topic, but I have to endorse mise; it's a really, really great tool that solves a number of different problems.
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.
Thank you for mise! I started adding it to my projects, because it removes a lot of the mental overhead of moving between them. I just cd to a project and everything just works.
The documentation is a little difficult, but LLMs seem pretty capable of understanding it and generating new tasks.
Good luck with your new endeavour! I have made a similar move in 2020 and it made me a much happier person.
22 comments
[ 2.7 ms ] story [ 43.3 ms ] threadOne 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!
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.
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?
Edit: mise rocks.
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.
The documentation is a little difficult, but LLMs seem pretty capable of understanding it and generating new tasks.
Good luck with your new endeavour! I have made a similar move in 2020 and it made me a much happier person.