Backing out of Nix/NixOS on a Mac

7 June 2025

My last post was all about Using Nix/NixOS for package management on a Mac. After trying to use it for a few months, I've now uninstalled it.

I still really like the concept of configuring my system as code, especially the ability to define per-project environments without relying on containerisation or virtual machines. However, Nix has several flaws.

The biggest issue for me was the steep learning curve. I never fully grasped the Nix language, which made it difficult to make changes, particularly since I wasn't writing Nix code on a regular basis. The syntax and structure are unlike most other tools I’ve used, which made it harder to retain.

On top of that, the error messages were often hard to interpret. Small changes often resulted in build failures, which I then had to spend significant time debugging. The process of deciphering and fixing these issues became frustrating.

In the end, I found myself spending more time trying to get Nix to work than actually working on the projects it was supposed to support.

For now, I've decided to try out GNU Stow for managing my dotfiles, which you can see here: https://github.com/Amwam/Dotfiles. I need to take some time and fully flesh out the configurations, but its a start. A few hours in and its already been easier to manager.

I would like to find a nice way of configuring a new MacOS system via code, but so far I've not been able to find much. I suspect I'll dive into some shell scripts to help configure the system the way I like.