What about nix brings you joy?

In the spirit of What in the nix-sphere brings you joy? · Issue #405 · NixOS/SC-election-2025 · GitHub, I’d like to know what people enjoy about Nix.

For me, it’s the fact that it is an incredibly powerful tool, that can be understood by many, that provides tangible benefits like reproducibility and deterministic builds to many programming languages. The fact that it works so well(no, it doesn’t work everywhere, or perfectly!) is a testament to the incredible work by thousands of contributors over more than 20 years.

14 Likes

the people. no matter who i talk to in this community they are so deeply passionate about nix. and its so lovely to see their face light up whilst you listen to the awesome ideas they have on how to make nix an even better place for us all.

11 Likes

I left this comment on reddit:

With NixOS, anyone can be a distro developer. The whole OS is produced by the Nix code in one monorepo. If there’s anything you don’t like about it, you can go in and change it. That makes it maximally customizable and I find it a ton of fun.

But I’ll expand a bit more. NixOS kind of acts like the best documentation in the world for any given aspect of a Linux operating system, because it’s a massive case of document by example. If you ever want to know how a feature of the OS works, you can just go look at the NixOS module that implements it. I know “read the code” doesn’t really count as good documentation, but the fact that NixOS offers the option for literally any part of the OS all in one place is awesome to me.

24 Likes

The community, who have taken it upon themselves to formally write down hundreds of thousands of lines of sysadmin lore that everyone can now benefit from by using nixpkgs.

9 Likes

I think the fact that nix is at the point in which adoption is growing. Nix has been around longer than many tools like Docker but hasn’t had a wave in adoption. It’s now at the point in which even companies like Google are starting to use them. It means people who have spent a long time helping Nix get to the point it is at now could potentially be doing this as their job. It also means we can get software written better for the Nix way of doing things. A lot of software has to be patched to fit into the Nix world. Now imagine if more companies adopt Nix and start fixing their software. We could potentially see a wave in software design that makes new and existing software fit Nix without us maintaining patches or hacks.

10 Likes

I’d love to say that I write sci-fi. Really I… plan sci-fi. The writing is infrequent. (This is related to nix… eventually.)

I’m building a world where civilization has collapsed and restarted many times. Dig anywhere long enough and you’ll find microchips that nobody alive knows how to interface with. The status quo is shaped by ancient technologies that are still kicking in some way, typically with minimal understanding on the users’ part.

A rather important one of these has to do with aggregating verifiable claims and ensuring that appropriate parties verify them. Their economy is based on these verifications. So if you come across a bridge (unbeknownst to you) the tech will figure out who built that bridge and give you an idea about wether the people you trust for this sort of thing trust that person. Then–supposing it doesn’t collapse under you–it will contribute to an accounting system which ensures that the builder of that bridge is more likely to be fed, should they ask for food. That is, supposing the bridge builder asks somebody who participates in the same religion protocol. Not scarcity, reciprocity en masse.

Their relationship with this tech is purely inductive. Nobody understands it, but they have noticed that if they “pray” in the right ways (really “data entry” would be a better term, but they don’t know that), things tend to work out ok. This enables the masses to engage in feats of coordination. Things that would require great sacrifice by one person, are instead achieved by the small gestures of thousands (i.e. the will of the “gods”, which is really just each other).

My goal is to feel out the architecture of these systems well enough that they feel like something we could actually build. The things that happen to my characters are, more or less, test cases for my attempt at post scarcity economics. It’s perhaps a bit ambitious, but I am having fun anyhow.

So what brings me joy about nix is the way that it quickly gets its users on the same page about the state of things. When I run across other nix users in PRs or issues, it seems like we’re operating with a greater collective confidence. Others are still trying to discover the nature of the bug, but armed with greater consistency, we’ve already moved on to the “what should we do about it” phase.

Admittedly, claims like

The output of Derivation X hashes to Y

are much easier to verify than

The guy who made this bridge out vines is good at that sort of thing

We’re playing in the kiddy pool here. But structurally speaking, we’re already doing part of the thing that I want to prove is possible in my story. It gives me hope that the rest of that thing is also possible.

2 Likes

I hugely enjoy the fact that i can self-host and deploy a variety of apps with one tool behind a vastly simpler, similar interface (i.e. NixOS options) building on top of shoulders of giants and community knowledge. No other tool seems so suitable for a solo developer. Mostly, i don’t need to know the details. And if something like a disk fails, i can just copy a completely configured disk image to a new disk and continue…oh and of course reproducible and shareable developer environments.

2 Likes

Nix is a functional programming language that is very practical. Nix helped me learn Haskell. It also helped me appreciate “functional programming” in imperative languages like Java and Rust.

Cross-compiling anything used to be hard. Cross-compiling an OS used to be a monumental task. Nix made it easy.

It’s easier to contribute a fix to NixOS than to Fedora or Ubuntu. Everything is in git. No special tools like fedpkg and mock are needed.

9 Likes

I am quite new to Nix. I started to use it, because Fedora did (does?) not provide the Haskell packages needed for my project “Decanter”. Because I dd not want to build half of Hackage with Cabal, I tried using a flake.nix with the help of AI and it worked smoothly. I am now on NixOS, which I installed besides Fedora, and I like how easy it is to try out new software without cluttering my system. In addition the nixos-rebuild command detects most of my misconfigurations, before I am even can try and troubleshoot them.

Yesterday I stumbled on direnv. With this I can simply cd ~/src/<myproject> and get all necessary development tools at my finger tips. How cool is that?

3 Likes

I love the declarative aspect

My flake just feels… so tidy, and so organised! I love it.

It’s a record of most of the state of my systems, and I can just ripgrep through it.

2 Likes

Sidestepping mere-installation version conflicts while preserving a reasonable degree of logical deduplication.

The benefits it brings for A/B rollbacks and even system bisection-debugging are of course also a welcome improvement…

2 Likes

Yeah, Nix happened to be the first functional language I’ve been exposed to. And I had no idea I had to learn a new programming language to maintain NixOS. Java is my expertise.

1 Like

I’ll add that the path of least resistance with Nix is writing something down in a .nix file, instead of shoving a bunch of imperative commands into a README.md somewhere. That may be a little subtle, but it also brings me a lot of joy because every change is an artifact that I can share and others can reproduce.

It’s wild how good we have it compared to most other Linux distros.

3 Likes

Nix allows me to easily design and deploy systems/environments I can throw around and beat with a baseball bat (multiple interpretations apply) with confidence: reset to a known state is just a reboot away, at worse.

Every other software environment I’ve interacted with will eventually decay. It will become unstable and the reason why is usually not directly apparent.

4 Likes

For me it’s simple, my progress and changes on building the computing experience I want are durable and not lost.

2 Likes