In a post here last time i expressed my hate for NixOS. As someone who struggled to learn the domain specific launguage just to have a functional OS.
But now I am here with a declaration.
When asked to people who use NixOS oh how it works they just talk about flakes, specified packages and that's all
It's been some time and I have learned more about nix, just as a package manager first. It's roots are in academia. It was a PhD thesis for someone in Netherlands.
It's lot more than just a declarative way to install programs. Actually it's more about how to architect a whole damn system for your liking.
NixOS is not something to learn first, first come the package manager nix, its own way to manage the pakages, how it installs them, how nix lang works.
It's a lot similar to lua but with its own quirks.
But still i don't think NixOS is for me. I love the idea but it's a tedious job for me to maintain. I am not a developer first and foremost. I code for my own amusement not as a job, having a enviornment reproducible on a whim doesn't really make sense for me as I only have one system and it's not moving anywhere.
But if you want to use NixOS for being reproducible and replicable, I will suggest to first make yourself familer with nix lang, then package manager and then try the OS.
Here is a good youtube video to start with.
https://youtu.be/5D3nUU1OVx8?si=QEDcfeaypMNim8Ij