Myhro Notes

Managing all the things with mise

I liked the idea of version managers from the first time I came into contact with rbenv. Back then, I was migrating my blog to Jekyll in order to serve it via GitHub Pages and needed to use a specific version of Ruby. A while later, I learned about asdf and how I could use it for multiple languages instead of downloading a separate version manager for each one of them. Under the hood, it still relies on tools like rbenv, but the process is transparent, and that’s what matters from a UX perspective.

Considering how much version managers have made my life easier, I took it a step further and developed my own, called staticd. Instead of downloading programming language interpreters and runtimes, it downloads statically linked binaries straight from GitHub, the kind that don’t depend on OS-level libraries to run. And for almost four years, it served me well.

That was until I learned about mise. It does exactly what staticd does, but with a much larger registry. On top of that, it also manages programming language runtimes in the same way that asdf does. Consequently, just as I once replaced rbenv/pyenv with asdf, I replaced asdf/staticd with mise. Maybe technology really does go in circles.