# Nix

378 Hacker News commenters recommended Nix and 150 criticized it, November 2025 to November 2026. It was recommended in 13 of 13 months; owners who said how long report a median of 3 years (24 owners). It meets the Hacker Approved badge rule.

**Verdict:** Recommended for reproducible, declarative builds and per-project dev environments with multiple versions side by side, but the learning curve, docs and overall UX are widely called brutal.

## Why people recommend it

- Reproducible, declarative system state (8 comments): "Nix lets you naturally encode that understanding in code (and in comments), making sure it never drifts from what the state of the system really is." ([source](https://news.ycombinator.com/item?id=49149097)) "Nix makes sure that everything is exactly as you declared, and that in case of [INSERT APOCALYPTIC EVENT], you'll be able to recover much faster" ([source](https://news.ycombinator.com/item?id=46932441)) "reproducible builds for this kind of testing infrastructure is important because you need the exact same chaos injection behavior across CI runs" ([source](https://news.ycombinator.com/item?id=47142748))
- Easy per-project dev environments (6 comments): "others are using Mise or Nix on a per project basis to automate the development environment setup and that works well on GitHub Actions" ([source](https://news.ycombinator.com/item?id=46926022)) "If you structure it correctly using task runners and an environment manager you can do everything locally using the same versions etc." ([source](https://news.ycombinator.com/item?id=46310673)) "I personally use direnv with nix to have per-project dependency versions installed automatically, and I've never had too much trouble." ([source](https://news.ycombinator.com/item?id=49218354))
- Multiple versions coexist without conflicts (4 comments): "As long as the specific version of Erlang you’re using is present in either your Nix store or the global cache for your OS and arch, you should not need to compile anything." ([source](https://news.ycombinator.com/item?id=45884084)) "This is different from most package managers, where trying to install anything old means spinning up a complex build environment and learning a bunch of new tools." ([source](https://news.ycombinator.com/item?id=49965781)) "They were built from the ground up to be able to have multiple, simultaneous versions of everything installed in separate store" ([source](https://news.ycombinator.com/item?id=47034549))
- Binary cache avoids rebuilding (3 comments): "As long as the specific version of Erlang you’re using is present in either your Nix store or the global cache for your OS and arch, you should not need to compile anything." ([source](https://news.ycombinator.com/item?id=45884084)) "Nix has the whole content addressed build DAG with caching, the intermediate language, and the ability to produce arbitrary outputs" ([source](https://news.ycombinator.com/item?id=47167564)) "adopt the Nix approach of caching common binary artifacts in a content addressable store and rebuild from source only when needed" ([source](https://news.ycombinator.com/item?id=50077271))

## What people warn about

- Brutal learning curve (4 comments): "I am about seven years into using Nix for various things, and can mostly solve most problems, but I won't deny that the learning curve at the beginning was brutal." ([source](https://news.ycombinator.com/item?id=48548582)) "Nix the language and ecosystem has historically been completely unapproachable for people unwilling to beat their head against the wall" ([source](https://news.ycombinator.com/item?id=49016503)) "It's a pretty special language, lazy evaluation and very basic types. However after spending the time to learn it to an intermediate level I think it's pretty great." ([source](https://news.ycombinator.com/item?id=46122878))
- Hostile UX and rough DX (3 comments): "Although you're right about nix's DX being quite rough, the problem isn't exactly that it "tries to be everything for package management"." ([source](https://news.ycombinator.com/item?id=46471315)) "I've got a couple using Nix, which laughs at everything else (but damn, the overall UX is still even more hostile than git)" ([source](https://news.ycombinator.com/item?id=48495358)) "its discoverability and transparency are sometimes very poor. Its module system is anything but lean and straightforward." ([source](https://news.ycombinator.com/item?id=50038480))
- Poor documentation and discoverability (2 comments): "The documentation is not great (especially since it tends to document nix-the-language and not the conventions actually used in Nixpkgs)" ([source](https://news.ycombinator.com/item?id=46173645)) "its discoverability and transparency are sometimes very poor. Its module system is anything but lean and straightforward." ([source](https://news.ycombinator.com/item?id=50038480))
- Frequent breakage in projects (2 comments): "Seeing that flake.nix badge of complexity lets me know a project will be a nightmare to set up and will break every other week." ([source](https://news.ycombinator.com/item?id=46258145)) "Everywhere it shows up it infects projects, creates constant breakage, and requires at least 1 person to become a nix expert" ([source](https://news.ycombinator.com/item?id=50110109))

## Alternatives hackers recommend

- [Homebrew](https://hackerapproved.com/p/homebrew.md): 271 recommend
- [npm](https://hackerapproved.com/p/npm.md): 161 recommend
- [pnpm](https://hackerapproved.com/p/pnpm.md): 124 recommend
- [Cargo](https://hackerapproved.com/p/cargo.md): 123 recommend
- [GNU Guix](https://hackerapproved.com/p/gnu-guix.md): 84 recommend

## Cite as

Hacker Approved, "Nix", https://hackerapproved.com/p/nix/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
