I’m about 20 hours or so into my nix journey, with a similar background to OP. I’ve so-far moved to flakes, implemented a basic config for Darwin based on https://github.com/MatthiasBenaets/nixos-config
I’ve built a pkg override for emacs-overlay but I haven’t managed to keep it in scope since moving to flakes. I’m sure I’ll figure it out.
For a specific project, I’ve implemented a new flake which uses https://github.com/nix-community/nix-direnv to set it up automatically when I cd into the project. Then (I’m especially happy about this), I’ve managed to get rootless podman working nicely in this setup, hopefully producing a low-maintenance yet cross compatible dev environment for Mac and Linux.
I love the fact that I can add all my homebrew taps, casks and brews into nix right away so that I can replace them one by one.
The beauty of all of this is you can use as much or as little nix as I like. For my server, I plan on running k3d first, then moving configuration piece by piece into nix as I learn & grow.
Hope that’s helpful :)