
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. Somehome-manager
features overlaps with NixOS’ and some of them have different syntaxes for the same feature (example: asystemd
unit withhome-manager
is not compatible with a normal NixOSsystemd
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?
- The NixOS desktop scene right now is dependent on community
projects like
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