Nix – Death by a Thousand Cuts

Overall sentiment & use cases

  • Many describe a strong love/hate relationship: the core ideas (declarative config, reproducibility, rollbacks) are praised, while tooling, ergonomics, and docs are frequent pain points.
  • NixOS is widely seen as excellent for servers, CI, and dev environments; desktop suitability is heavily debated.
  • Several people keep Nix only for user‑space/dev (e.g., Home Manager or nix on macOS/Ubuntu) rather than as their main OS.

Desktop vs. server

  • On servers, users report major gains in stability, repeatability, and ease of upgrading/rollback.
  • On desktops/laptops, issues include Wi‑Fi/eduroam, NVIDIA/Wayland, webcam/sleep regressions, VS Code remote integration, and difficulty running generic Linux binaries.
  • Some daily‑drive NixOS happily and say they “can’t go back”; others tried and reverted to more conventional distros (Ubuntu, Arch, Fedora‑Atomic/Universal Blue).

Nix language, flakes, and workflows

  • The Nix language is widely seen as odd, under‑documented, and poorly tooled (weak LSP/“go to definition”, confusing module system).
  • Flakes are divisive: many consider them essential (pinning, pure eval, devShells, easy nix run), others note they’re still marked experimental, have UX issues, and overlap with non‑flake pinning solutions.
  • Lack of a clear, blessed “new user workflow” (system config layout, how to structure flakes, how to mix stable/unstable) is a recurring complaint.

Packaging, binaries, and compatibility

  • Nixpkgs’ breadth is praised, but:
    • Packaging complex or binary‑only software can be hard, especially when it assumes FHS paths or mutable config.
    • Tools like buildFHSenv, nix‑ld, steam‑run, distrobox, and AppImage helpers are common escape hatches.
  • Cross‑compilation and Raspberry Pi support work for some via remote builders and community projects, but are described as fragile or slow.

Docs, errors, and learning curve

  • Documentation is called fragmented, outdated in places, and light on end‑to‑end examples; many mention “too many ways to do the same thing.”
  • Error messages are often considered cryptic; LLMs are reported as unhelpful for non‑trivial Nix debugging.

Comparisons & philosophy

  • Some argue conventional distros + config management (Ansible‑like scripts, Btrfs snapshots, Timeshift) already solve most needs.
  • Others see Nix’s declarative, near‑stateless model as a qualitative upgrade over Dockerfiles, LTS distros, or ad‑hoc configs, despite the current “death by a thousand cuts.”