HackerFriction Feedback

Products · Product

Nix

Raised as a usability problem by 522 people on Hacker News over 14 years (2013–2026), in 291 threads.

Ranked by people · period

  1. 1
    Takes ages to learn Nix with too little documentationReviewed

    15 people this year · 9 threads

  2. 2
    Builds are slow, so many small build steps are costlyUnreviewed

    4 people this year · 4 threads

  3. 3
    Error messages often unrelated to the actual problemUnreviewed

    4 people this year · 4 threads

  1. 1
    Takes ages to learn Nix with too little documentationReviewed

    146 people in the last 5 years · 96 threads

  2. 2
    Error messages often unrelated to the actual problemUnreviewed

    20 people in the last 5 years · 16 threads

  3. 3
    Flake docs mixed with experimental status, so users must work out methodsUnreviewed

    17 people in the last 5 years · 14 threads

  4. 4
    Builds are slow, so many small build steps are costlyUnreviewed

    14 people in the last 5 years · 14 threads

  5. 5
    Pinning versions not in nixpkgs requires overlays and hacksUnreviewed

    7 people in the last 5 years · 7 threads

  6. 6
    Sparse documentation forces reverse-engineering package definitionsUnreviewed

    7 people in the last 5 years · 7 threads

  7. 7
    Getting a working shell.nix setup is much harder than DockerUnreviewed

    6 people in the last 5 years · 5 threads

  8. 8
    Outdated build instructions hide dependency problems one after anotherUnreviewed

    6 people in the last 5 years · 6 threads

  9. 9
    Commands and flags are hard to memorize, requiring shell aliasesUnreviewed

    5 people in the last 5 years · 5 threads

  10. 10
    Problems wrapper tools hide leave users stuck and forced to restartUnreviewed

    5 people in the last 5 years · 5 threads

  11. 11
    Packaging own software becomes endless rabbit hole with sparse docsUnreviewed

    4 people in the last 5 years · 4 threads

  12. 12
    Package names hard to find, inconsistent, with versions mixed inUnreviewed

    4 people in the last 5 years · 4 threads

  13. 13
    Simple tasks take immense time and custom packages are hardUnreviewed

    4 people in the last 5 years · 4 threads

  14. 14
    Debugging lazy language errors requires bisecting small changesUnreviewed

    4 people in the last 5 years · 4 threads

  15. 15
    Changes to flake.nix don't apply until staged in gitUnreviewed

    4 people in the last 5 years · 4 threads

  16. 16
    Can't remove a package by the name used to install itUnreviewed

    4 people in the last 5 years · 3 threads

  17. 17
    Tutorials start with details, so learners miss the big pictureUnreviewed

    3 people in the last 5 years · 3 threads

  18. 18
    Hard to read and learn even for experienced programmersUnreviewed

    3 people in the last 5 years · 3 threads

  19. 19
    nix-env --upgrade doesn't do what users expectUnreviewed

    3 people in the last 5 years · 3 threads

  20. 20
    Too many ways to do the same thing with no clear choiceUnreviewed

    3 people in the last 5 years · 3 threads

  21. 21
    Switching profiles silently removes Nix from PATH, undocumentedUnreviewed

    3 people in the last 5 years · 3 threads

  22. 22
    All-or-nothing adoption disrupts existing developer workflowsUnreviewed

    3 people in the last 5 years · 3 threads

  23. 23
    No resource makes it click for learnersUnreviewed

    3 people in the last 5 years · 3 threads

  24. 24
    Adding a Python library requires editing a separate repoUnreviewed

    3 people in the last 5 years · 3 threads

  25. 25
    Lazy evaluation causes confusing infinite loops when debuggingUnreviewed

    3 people in the last 5 years · 3 threads

  26. 26
    Struggles to get simple self-contained flake examples workingUnreviewed

    3 people in the last 5 years · 3 threads

  27. 27
    Function definitions hidden by subtle syntax like a single colonUnreviewed

    3 people in the last 5 years · 3 threads

  1. 1
    Takes ages to learn Nix with too little documentationReviewed

    202 people since the beginning · 140 threads

  2. 2
    Error messages often unrelated to the actual problemUnreviewed

    20 people since the beginning · 17 threads

  3. 3
    Flake docs mixed with experimental status, so users must work out methodsUnreviewed

    18 people since the beginning · 15 threads

  4. 4
    Builds are slow, so many small build steps are costlyUnreviewed

    17 people since the beginning · 17 threads

  5. 5
    Pinning versions not in nixpkgs requires overlays and hacksUnreviewed

    10 people since the beginning · 10 threads

  6. 6
    Sparse documentation forces reverse-engineering package definitionsUnreviewed

    8 people since the beginning · 8 threads

  7. 7
    Getting a working shell.nix setup is much harder than DockerUnreviewed

    8 people since the beginning · 7 threads

  8. 8
    Packaging own software becomes endless rabbit hole with sparse docsUnreviewed

    6 people since the beginning · 6 threads

  9. 9
    Commands and flags are hard to memorize, requiring shell aliasesUnreviewed

    6 people since the beginning · 6 threads

  10. 10
    Tutorials start with details, so learners miss the big pictureUnreviewed

    6 people since the beginning · 6 threads

  11. 11
    Outdated build instructions hide dependency problems one after anotherUnreviewed

    6 people since the beginning · 6 threads

  12. 12
    Problems wrapper tools hide leave users stuck and forced to restartUnreviewed

    6 people since the beginning · 6 threads

  13. 13
    Docs too hard for casual users to do small tasksUnreviewed

    5 people since the beginning · 4 threads

  14. 14
    Package names hard to find, inconsistent, with versions mixed inUnreviewed

    4 people since the beginning · 4 threads

  15. 15
    Simple tasks take immense time and custom packages are hardUnreviewed

    4 people since the beginning · 4 threads

  16. 16
    Debugging lazy language errors requires bisecting small changesUnreviewed

    4 people since the beginning · 4 threads

  17. 17
    Hard to read and learn even for experienced programmersUnreviewed

    4 people since the beginning · 4 threads

  18. 18
    Changes to flake.nix don't apply until staged in gitUnreviewed

    4 people since the beginning · 4 threads

  19. 19
    Package search takes about half a second to runUnreviewed

    4 people since the beginning · 3 threads

  20. 20
    Can't remove a package by the name used to install itUnreviewed

    4 people since the beginning · 3 threads

  21. 21
  22. 22
    nix-env --upgrade doesn't do what users expectUnreviewed

    3 people since the beginning · 3 threads

  23. 23
    Too many ways to do the same thing with no clear choiceUnreviewed

    3 people since the beginning · 3 threads

  24. 24
    Switching profiles silently removes Nix from PATH, undocumentedUnreviewed

    3 people since the beginning · 3 threads

  25. 25
    Overlapping concepts make it hard to find the right docsUnreviewed

    3 people since the beginning · 3 threads

  26. 26
    Docs skip real-world integration, so adding a package takes trial and errorUnreviewed

    3 people since the beginning · 3 threads

  27. 27
    Package search needs awkward incantations and misses related packagesUnreviewed

    3 people since the beginning · 3 threads

  28. 28
    All-or-nothing adoption disrupts existing developer workflowsUnreviewed

    3 people since the beginning · 3 threads

  29. 29
    No resource makes it click for learnersUnreviewed

    3 people since the beginning · 3 threads

  30. 30
    Helper functions have unclear arguments and poor documentationUnreviewed

    3 people since the beginning · 3 threads

  31. 31
    Beginners can't install packages with docs and CLI as they areUnreviewed

    3 people since the beginning · 3 threads

  32. 32
    Adding a Python library requires editing a separate repoUnreviewed

    3 people since the beginning · 3 threads

  33. 33
    Lazy evaluation causes confusing infinite loops when debuggingUnreviewed

    3 people since the beginning · 3 threads

  34. 34
    Struggles to get simple self-contained flake examples workingUnreviewed

    3 people since the beginning · 3 threads

  35. 35
    Function definitions hidden by subtle syntax like a single colonUnreviewed

    3 people since the beginning · 3 threads

Every issue, all time, most people first

  1. Takes ages to learn Nix with too little documentationReviewed

    202 people since 2013, in 14 different years · 15 this year

    2013: 1 person2014: 2 people2015: 2 people2016: 6 people2017: 3 people2018: 5 people2019: 3 people2020: 18 people2021: 29 people2022: 48 people2023: 31 people2024: 36 people2025: 27 people2026: 12 people
    20132026

    Read the reviewed issue →

    Something wrong here?
  2. Error messages often unrelated to the actual problemUnreviewed

    20 people since 2021, in 6 different years · 4 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 2 people2022: 6 people2023: 3 people2024: 3 people2025: 7 people2026: 1 person
    20132026
    Something wrong here?
  3. Flake docs mixed with experimental status, so users must work out methodsUnreviewed

    18 people since 2021, in 5 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 5 people2023: 7 people2024: 1 person2025: 6 people2026: 0 people
    20132026
    Something wrong here?
  4. Builds are slow, so many small build steps are costlyUnreviewed

    17 people since 2017, in 8 different years · 4 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 1 person2020: 1 person2021: 0 people2022: 3 people2023: 2 people2024: 3 people2025: 3 people2026: 3 people
    20132026
    Something wrong here?
  5. Pinning versions not in nixpkgs requires overlays and hacksUnreviewed

    10 people since 2017, in 8 different years · 2 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 1 person2019: 0 people2020: 1 person2021: 2 people2022: 1 person2023: 2 people2024: 0 people2025: 2 people2026: 2 people
    20132026
    Something wrong here?
  6. Sparse documentation forces reverse-engineering package definitionsUnreviewed

    8 people since 2020, in 6 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 2 people2023: 1 person2024: 2 people2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  7. Getting a working shell.nix setup is much harder than DockerUnreviewed

    8 people since 2020, in 4 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 2 people2021: 2 people2022: 3 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  8. Packaging own software becomes endless rabbit hole with sparse docsUnreviewed

    6 people since 2020, in 5 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 2 people2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  9. Commands and flags are hard to memorize, requiring shell aliasesUnreviewed

    6 people since 2021, in 5 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 2 people2023: 1 person2024: 1 person2025: 0 people2026: 1 person
    20132026
    Something wrong here?
  10. Tutorials start with details, so learners miss the big pictureUnreviewed

    6 people since 2020, in 4 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 2 people2022: 2 people2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  11. Outdated build instructions hide dependency problems one after anotherUnreviewed

    6 people since 2022, in 4 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 3 people2023: 1 person2024: 1 person2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  12. Problems wrapper tools hide leave users stuck and forced to restartUnreviewed

    6 people since 2017, in 4 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 2 people2023: 2 people2024: 0 people2025: 0 people2026: 1 person
    20132026
    Something wrong here?
  13. Docs too hard for casual users to do small tasksUnreviewed

    5 people since 2018, in 4 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 0 people2020: 0 people2021: 2 people2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 1 person
    20132026
    Something wrong here?
  14. Package names hard to find, inconsistent, with versions mixed inUnreviewed

    4 people since 2018, in 4 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 2 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  15. Simple tasks take immense time and custom packages are hardUnreviewed

    4 people since 2021, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 0 people2023: 2 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  16. Debugging lazy language errors requires bisecting small changesUnreviewed

    4 people since 2022, in 3 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 2 people2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  17. Hard to read and learn even for experienced programmersUnreviewed

    4 people since 2021, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 2 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  18. Changes to flake.nix don't apply until staged in gitUnreviewed

    4 people since 2023, in 3 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 2 people2025: 0 people2026: 1 person
    20132026
    Something wrong here?
  19. Package search takes about half a second to runUnreviewed

    4 people since 2021, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 2 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  20. Can't remove a package by the name used to install itUnreviewed

    4 people since 2022, in 1 different year · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 4 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  21. Must learn maintainer-chosen config options instead of standard configurationUnreviewed

    3 people since 2017, in 4 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 1 person2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  22. nix-env --upgrade doesn't do what users expectUnreviewed

    3 people since 2021, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 0 people2023: 1 person2024: 0 people2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  23. Too many ways to do the same thing with no clear choiceUnreviewed

    3 people since 2024, in 3 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 1 person2025: 1 person2026: 1 person
    20132026
    Something wrong here?
  24. Switching profiles silently removes Nix from PATH, undocumentedUnreviewed

    3 people since 2022, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 1 person2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  25. Overlapping concepts make it hard to find the right docsUnreviewed

    3 people since 2021, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 1 person2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  26. Docs skip real-world integration, so adding a package takes trial and errorUnreviewed

    3 people since 2019, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 0 people2021: 1 person2022: 0 people2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  27. All-or-nothing adoption disrupts existing developer workflowsUnreviewed

    3 people since 2023, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 1 person2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  28. No resource makes it click for learnersUnreviewed

    3 people since 2022, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  29. Helper functions have unclear arguments and poor documentationUnreviewed

    3 people since 2017, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  30. Beginners can't install packages with docs and CLI as they areUnreviewed

    3 people since 2020, in 3 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  31. Adding a Python library requires editing a separate repoUnreviewed

    3 people since 2022, in 2 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 2 people2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  32. Lazy evaluation causes confusing infinite loops when debuggingUnreviewed

    3 people since 2022, in 2 different years · 1 this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 2 people2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20132026
    Something wrong here?
  33. Struggles to get simple self-contained flake examples workingUnreviewed

    3 people since 2023, in 2 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 2 people2024: 1 person2025: 0 people2026: 0 people
    20132026
    Something wrong here?
  34. Basic fixes need tribal knowledge and hundreds of lines of codeUnreviewed

    3 people since 2022, in 2 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 0 people2024: 0 people2025: 2 people2026: 0 people
    20132026
    Something wrong here?
  35. Function definitions hidden by subtle syntax like a single colonUnreviewed

    3 people since 2021, in 2 different years · none this year

    2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 2 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20132026
    Something wrong here?

This list counts all time; the period switch above only changes the ranking. Each issue is a group of similar complaints raised by at least 3 people in 3 different months and threads. Each line under an issue is Claude Haiku's summary of one of its latest comments, not a quote; follow it to read the comment on Hacker News.

Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.

The newest 50 complaints