/home/leela projects blog experiments
> pandoc -t html5 /run/user/leela/blog/nix-musings.md

Musings on Nix(OS) after migration

Dec 31 2023

I've recently switched large parts of my infrastructure towards NixOS, after first trying Nix on my then-Arch-based workstations.

At this point, I've got 3 servers (including the one that served you this page!) as well as both of my personal desktop systems migrated to NixOS, and I thought it was time to maybe write a retrospective for myself.

The Beginning

The original impulse to try Nix (for the second time, after a failed attempt last year) was meeting a very nice and fluffy person that is part of the Nix team, and has a lot of experience using it.

With their help (<3) I initially slowly converted my dotfiles repository from a simple git repo into Home Manager running under Arch, and was quickly convinced by the approach.

Trying NixOS

The obvious next step was to try NixOS; the small VPS that hosts this site was the perfect thing to try with and I was *very* quickly convinced by it.

After coming from other, imperative distros and having used Ansible to try and keep the messiness of configuration in check, NixOS and it's declarative approach is a massive breath of fresh air. I do not see myself returning to any other distro at this point.

The Good

With my personal story out of the way, here are what I consider to be the things that Nix(OS) excels at:

The Bad

Sadly, it's not perfect:


Nix has a great ecosystem, some of the tools I like and use:

Closing thoughts

Overall, NixOS and it's approach is great and shows lots of promise, even if Nix itself has a lot of jagged edges and could be improved. I'm excited to move the remaining systems I still have on Alpine to NixOS in the coming weeks, and I'm already really happy with what I've been able to write thanks to the expressiveness of Nix, and wonder how I ever managed to survive with Ansible.

My configuration for everything, packaged in a flake, can be found here.

> cd ..