mise does 90% of what I need, but at only 1% of the hassle.
I like the idea of nix, and the future of building software is clearly something like it... I'm just not sure it'll be nix itself.
The solution here is: use Nix but don't use nix-darwin (at least not until you're generally comfortable with Nix for package management and dev shells). You do NOT have to use nix-darwin on Mac to reap 80% of the benefits of Nix (especially in a team setting).
After dropping nix-darwin, I think almost everyone will find that it's very easy to use Nix for sharing project setups with bespoke tooling. I just had a new team member onboard, knowing nothing about Nix, in a day or less, with several different languages and unusual tools.
Ahh, but I tried that too. I originally decided to play with nix-darwin because I was on a contract that used nix in their repos to ease onboarding of academic collaborators.
In practice, it was complicated enough that most of us ended up relying on the 2 nix experts to make any real changes, and when they left, the nix configs stagnated.
It might be the case that nix-darwin, and our particular python/ML repos, were "hard mode" for nix, but I truly think I gave it a fair shake.
If nix requires a lot of effort to do anything off the beaten path, it's just not the tool for me.
I use it because I want people to be able to get projects up and running quickly without having to comb through an outdated README, trying to deal with all of the different ways people like to install and use non-compiled languages, etc. Managing anything Node/Ruby/Python is all annoying.