nix and NixOS
NixOS let's you define an Entire OS configuration in a single configuration file. Whenever changes are made to the File the a new snapshot of the OS is built, reflecting the edits made. So if something breaks, you can boot into an older Configuration and resolve the breaking changes. In most cases however NixOS warns you while building a new system.
macOS support
The nix packagemanager has support for macOS. With the dawin Module it even let's you declaratively configure macOS settings.
Packages are isolated
Tons of software packages
Due to the extensive software repository, installing packages from the internet or even compiling them by yourself is almost never required.
Easy Management of servers
Let's say you have multiple Websites and decide to take one offline. All that is required is a change to the configuraion file. Comment out the the relevant lines from:
imports = [
/etc/nixos/website-config.nix
/etc/nixos/some-directory/anotherwebsite-config.nix # <-- HERE!
]