I basically went straight to using flakes when I switched from Arch to NixOS, so I can’t speak to channels.
I use home-manager as a NixOS module. It’s a bit clunky, but it works well.
I was told when I started to basically never use nix-env, so I don’t.
For development environments (I do both rust and python), I use https://github.com/the-nix-way/dev-templates
My config is here if you want something to work from https://github.com/thejevans/nix-config
For me the reasons were:
I have a desktop gaming PC, a framework laptop, and a 2014 macbook air. Having one config that I can share between them makes maintaining all the systems that much easier.
Using Arch I would either be in two states, and NixOS works great for both:
I’m not using any specific computer very often and I just want it to work when I turn it on, and I need to not worry that if I go too long without updates I’ll break something.
I’m playing around with some brand new software which usually means installing unstable dependencies from the AUR, and rolling back or containing those changes is difficult, so I end up breaking something, and then updates become a huge pain until I need to just wipe everything and reinstall