I started with a server, and then a VM for the desktop environment, and then my desktop, and then everything.
In retrospect, starting with a server was a good idea. It made it easier to learn how the different pieces of NixOS work.
Using a VM was a bit of a wash in retrospect. It helped to be able to quickly iterate on a config. But it also made some things more confusing, like animations not working right in the VM out of the box.
I would suggest dual-booting or using a spare hard drive.
You can run NixOS on ZFS and get the best of both worlds.
This is nice because
/nix
is reproducible, so you can make a ZFS filesystem for/nix
that you don't snapshot (or at least, don't retain old snapshots). Since so much lives in/nix
, the rest of your root filesystem is pretty light, and you can snapshot that for easy backups.For booting, selecting a NixOS configuration to boot is smoother than selecting a ZFS snapshot. Something like systemd-boot is preferable over something like ZFSBootMenu.