Every(ish) single package, every single line of configuration(ish) is under version control in a(couple) nix files. I share (most) of it between my systems. With flakes (and it's lockfile) it's a 100%(ish) deterministic system.
Downside: The language is arcane to me and the tooling is dogshit. Not that I could've made it any better, but running my config repo through entre to rebuild on every write to get some promiscuous error nobody has had before sucks major D.
Therefore I still have an Ubuntu container (because every desktop application targets Ubuntu) running with X11 forwarding for the few packages that aren't in nixpkgs that I wanna run.
I also don't use home-manager, but chezmoi for my dotfiles. Since I want my home configuration to work on MacOS and other distros I might SSH.
Atomic upgrades and downgrades are such a great feature I don't know how people can live without it now that I've experienced it.
Note: The default configuration NixOS gives you is also shit, out of the box they don't ship a system like you'd want to consume it (nixos-generate-config). An anecdotal example is that Avahi isn't installed by default, which means chromecasting won't work until you figure out that you need Avahi, i18n config is shit too.
So it's not all green grass, but definitely worth it, since every Nix line you write is an investment into making your experience better "forever" (I don't see NixOS going away anytime soon, very healthy activity on the project).
Now after praising NixOS for awhile, let's praise the developers of all packages that are compiled into the lovely distros you all use. For me the KDE team can't get enough praise, the software is so damn good.
FYI, home manager works on MacOS just fine. I usually tell people to start with Home Manager as I think it's the best gateway drug to Nix stuff at the moment.
I'm looking forward to checking Darwin nix stuff out.