Page image
NixOS
Things I wanted to say about NixOS
Published: Jun 21, 2025

6 months and looking back

It really is fast, isn’t it? Just with a blink of an eye and we are already halfway into 2025. Today, I wanted to look back at my experience with NixOS for the past 6 months daily driving it. To say the least, it was a very pleasant and eye-opening experience. It is absolutely awesome to be able to declare your own system and see things work (almost) flawlessly.

I’ve already done some glazing in the past, so today I wanted to talk about the things that I’m not very happy with NixOS.

  • Lack of proper documentation and error messages
    • It is sad for a popular piece of software that has been around for over 20 years to not have good documentation.
    • For example, I was trying to package something with Nix. I made a mistake of not suppling the mandatory attribute version and during build Nix returns: error: derivation name missing. I had to spend quite a lot of time to figure this out.
    • There isn’t really an official source of documentation for Nix/NixOS.
  • A bloated /nix/store
    • Fortunately, this is managable. But the process of finding the solution for this wasn’t easy at all. I had to crawl through search queries for an extensive amount of time in order to solve this.
    • There are Wiki pages for garbage collection, but it certainly did not help me.
  • Nix, the language
    • I personally think Nix is extremely limiting in terms of fun.
    • Syntaxes are complex and messy, concepts are plenty and hard-to-learn, yet you can’t really do fun things like generating configs with Nix during rebuilds.
    • This is probably why people say that NixOS is hard to use.
  • Secrets/credentials handling
    • To this day, I still can’t figure out how to do private configurations properly. Solutions for this are impure - it makes my system not truly reproduceable.
    • Can we just… not do git add, please?
  • The use of Github
    • I don’t think they’re going to leave in any time soon, considering how everything has already been integrated with Github.
  • No standards
    • The NixOS desktop scene right now is dependent on community projects like home-manager. Because of it being a separate project, its standards doesn’t align with NixOS. Some home-manager features overlaps with NixOS’ and some of them have different syntaxes for the same feature (example: a systemd unit with home-manager is not compatible with a normal NixOS systemd unit)
    • home-manager has become so popular that nobody offers a guide for writing a vanilla config anymore. If it is so popular, why not make the project official and rework the standards?
  • Political concerns

Phew, that was a lot to say. But despite all of this, I’d still consider NixOS a nice distribution to use. I simply cannot forget the feeling Nix has brought to me for configuring Linux systems. But some parts of NixOS made me feel rather less powerful… Nix may already have the capability to offer me an authoritarian-level of control over my systems, but on the surface, it is hard to really grasp the power of Nix at the state it’s in currently.

At this point, I’d consider myself switching to GNU Guix - a Nix-inspired Linux distribution that uses a real programming language - instead. So far, I have already known 3 people that runs Guix on their machine. We’ll see about that.


← Go to parent
Category:  Linux UNIX systems Review
Tags:  NixOS