I started using NixOS in all my machines last winter, and slowly decided it is for me when I understood the basics. It was a rough start for me, but I have a few decades of linux knowledge, that helped me past the starting point.
You can read my config and see how to create overlays from different sources. E.g. if your fork updates vim, your overlay overwrites vim in the definition. Then referring to pkgs.vim points to your fork. See flake.nix in the repo.
Next thing I want to learn is how to package a complex js/rust package into a flake setup. I have the whole next friday to that.
In some cases I do settle for using `steam-run` or `buildFHSUserEnv` but I don't think I am using those for anything right now.