NixOS is not for the impatient. Maintaining your system configuration is an exercise in software development like any other - if you lack rigor or discipline, your codebase will become painful to work with. Nothing is ever one shell incantation away - it has to be carefully architected into the existing system.

That being said, once you get the hang of things, you reap amazing benefits:

- You can clone your system to any machine, and immediately have an identical environment

- You can share system configurations as code (declare the means for hosting a website in its repository, for example)

- You can use a fully-fledged programming language to configure any part of your system

- You can make use of an extensive ecosystem of easily composable, prebuilt NixOS modules

- You can seamlessly integrate with Nix, allowing for ephemeral development environments and shells with packages, eliminating much of the need for imperative package management

- Everything in a Nix-based system must be derived strictly from (lockfiled) inputs, making the reproducibility guarantees incredibly strong (barring any network errors or resources being taken down)

- The declarative nature of anything Nix-based means that every change is documented - your system never shifts from the source of truth, compared to other distros where discipline is required to maintain reproducibility

- Nix is so robust that you could even nuke your filesystems on every log out, if you'd like

I mount '/' as a tmpfs so yes, I nuke my OS every reboot.

It's reconstructed from the /nix/store and obviously my homedir is on a persistent volume.

What does the config for doing that look like?

They are likely talking about using https://github.com/nix-community/impermanence, which is inspired by ideas in https://grahamc.com/blog/erase-your-darlings/

Edit: comments on the latter at https://news.ycombinator.com/item?id=22856199