It's pretty great at being a server OS, honestly.
There are tons of modules that set up services well. Almost everything I've wanted to run already has a module and it's as easy as services.name.enable = true
.
By far my favorite aspect has been being able to declaratively configure things like Prometheus or Traefik. It solves a problem I end up trying to solve with a lot of glue (and YAML) at work.
Being able to recover from disaster by just checking out your git repo and doing a rebuild makes everything else feel a little... hacky. You don't need a separate system to manage config files or software versions.
I sound like a fanboy because I am. It's been revolutionary for me.