It is not just about deploying, which to be honest is great. I can build software for my Raspberry Potato on my desktop and remote deploy the config using one line in the terminal.
It is also for when I decide to tinker with my system by changing stuff like audio latency and clock rates for real time audio, USB HID overrides and so on. Normally I would be scared to break something, or worse, fix something without knowing what did it and thus learning nothing from my efforts.
The best part is having a system that you can approach almost scientifically, making it unbreakable in the sense that you can immediately revert to a true former state, both as a build and a config using GRUB and Git, respectively.











NixOS for self hosted is awesome! A few lines of code and you have set up a service on bare metal, without needing to think about dependencies. Just look at this beauty, OP:
services.immich = { enable = true; host = "0.0.0.0"; port = 2283; openFirewall = true; };