HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
NixOS
nixpkgs
Nix2013–2026
NixOS / nixpkgs

nixpkgs

Nix Packages collection & NixOS

360Distinct people
597Mentions
11Explicit recommenders
26.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Nix Packages collection & NixOS

GitHub

Where it is used

  • NixOS — NixOS uses Nixpkgs as a core part of the distribution; it is built around Nixpkgs. This powers its reproducible, declarative system configuration. Source

What people are saying

I love NixOS, it's my daily driver on my personal laptop, but it definitely has given me more than its fair share of headaches. If everything you're going to do is in Nixpkgs,…

tombert used a recommendation phrase. 11 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:27:21 AM UTC.

A technical vision for the Haskell ecosystem direct repository linkDebated

Commenters debate whether Haskell's primary bottleneck is technical performance, such as compile time and incremental builds, or its lack of a coherent, polished ecosystem for building diverse applications like web and desktop software. While some argue that foundational libraries and better developer experience are the missing pieces, others contend that the language's utility is constrained by fragmented tooling and unclear positioning compared to more universal alternatives.

17 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year597 dated mentions

Observed mentions: 2013-12-15 16:18:08 UTC to 2026-10-21 00:27:48 UTC.

02550751001252013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 23 mentions; 1 submissions, 22 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 22 mentions; 0 submissions, 22 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 21 mentions; 0 submissions, 21 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 31 mentions; 1 submissions, 30 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 59 mentions; 1 submissions, 58 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 112 mentions; 3 submissions, 109 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 72 mentions; 3 submissions, 69 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 81 mentions; 5 submissions, 76 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 77 mentions; 3 submissions, 74 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 53 mentions; 5 submissions, 48 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 25 mentions; 2 submissions, 23 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC101
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC716
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC13112
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC23122
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC22022
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC21021
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC31130
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC59158
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC1123109
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC72369
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC81576
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC77374
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC53548
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC25223

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
Nixpkgs is a collection of over 140,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution. Manuals NixOS Manual - how to install, configure, and maintain a purely-functional Linux distribution Nixpkgs Manual - contributing to Nixpkgs and using programming-language-specific Nix expressions Nix Package Manager Manual - how to write Nix expressions (programs), and how to use Nix command line tools Community Discourse Forum Matrix Chat Official wiki Community-maintained list of ways to get in touch (Discord, Telegram, IRC, etc.) Other Project Repositories The sources of all official Nix-related projects are in the NixOS organization on GitHub. Here are some of the main ones: Nix - the purely functional package manager NixOps - the tool to remotely deploy NixOS machines nixos-hardware - NixOS profiles to optimize settings for different hardware Nix RFCs - the formal process for making substantial changes to the community NixOS homepage - the NixOS.org website hydra - our continuous integration system NixOS Branding - NixOS branding Continuous Integration and Distribution Nixpkgs and NixOS are built and tested by our continuous integration system, Hydra. Continuous package builds for unstable/master Continuous package builds for the NixOS 26.05 release Tests for unstable/master Tests for the NixOS 26.05 release Artifacts successfully built with Hydra are published to cache at https://cache.nixos.org/. When successful build and test criteria are met, the Nixpkgs expressions are distributed via Nix channels. Contributing Nixpkgs is among the most active projects on GitHub. While thousands of open issues and pull requests might seem like a lot at first, it helps to consider it in the context of the scope of the project. Nixpkgs describes how to build tens of thousands of pieces of software and implements a Linux distribution. The GitHub Insights page gives a sense of the project activity. Community contributions are always welcome through GitHub Issues and Pull Requests. For more information about contributing to the project, please visit the contributing page. Donations The infrastructure for NixOS and related projects is maintained by a nonprofit organization, the NixOS Foundation. To ensure the continuity and expansion of the NixOS infrastructure, we are looking for donations to our organization. You can donate to the NixOS Foundation through SEPA bank transfers or by using Open Collective: License Nixpkgs is licensed under the MIT License. NoteMIT license does not apply to the packages built by Nixpkgs, merely to the files in this repository (the Nix expressions, build scripts, NixOS modules, etc.). It also might not apply to patches included in Nixpkgs, which may be derivative works of the packages to which they apply. The aforementioned artifacts are all covered by the licenses of the respective packages.
Read the full README on GitHub

What Hacker News says

13 sources
smilliken·Dec 10, 2015Recommendation phrase
I highly recommend Nix. We used to use apt-get, pypi, rubygems, npm, make, and others, and now it's all replaced with a single tool: nix. It's dramatically simplified builds and dependency management for us at MixRank. Benefits: * It's declarative, so no one has to run anything to get to the correct state when a dependency has changed. Open a new nix-shell and automatically get everything. It's impossible to get in a bad state because it doesn't touch your system. * We know we're all running the same software because the build will fail if hashes don't match. * Portable across most unix's, and windows support is in progress. * Patching other people's code is as easy as referencing a .patch file from a nix expression. You don't have to wait for your patch to be accepted in the main project or fork the project to build a custom release. * T
Read the rest
here's no virtualization of IO like in containers. It effectively has no overhead. * We can easily use different versions of the same piece of software in parallel; they don't collide because the hashes don't match. * It has a very active community. The package repository, nixpkgs [1], has 73k commits, 650 contributors, and median pull request acceptance of 18 hours. * Our software won't silently break because one of our package managers replaced a package. We maintain a fork of nixpkgs which we rebase on our own schedule. If you've ever been frustrated with your package manager or build tools, give nix a shot! [1] https://github.com/nixos/nixpkgs
In Stack and Nix = portable reproducible builds
NixOS (the inspiration for Guix) has supported something like this for a while: http://nixos.org/nixos/manual/index.html#ch-containers There's even support coming in Nix for building standard layered Docker containers in a fully deterministic way: https://github.com/NixOS/nixpkgs/pull/11156 The deterministic properties of Guix and NixOS allow some amazing things. I personally prefer Nix as it has a more complete and mature ecosystem, but everyone should check out both projects though.
In Environment containers in GNU Guix
> I never claimed any other single point of failure [in user-space] than the service manager. If all of one's system and service management relies upon a system-wide software "bus", then another similar problem is what to do when one has restarted the "bus" broker service and it has lost track of all active clients and servers. * https://bugs.freedesktop.org/show_bug.cgi?id=89847 * https://github.com/NixOS/nixpkgs/issues/7633 Related problems are what to do when one cannot shut down one's log daemon because the only way to reach its control interface is via a "bus" broker service, and the broker in turn relies upon logging being available until it is shut down. Again, this is an example of engineering tradeoffs. Choose one big centralized logger daemon for logging everything, and this complexity and interdependence is a consequence. A
Read the rest
different design is to have multiple log daemons, independent of one another. With the cyclog@dbus service logging to /var/log and that log daemon's own and the service manager's log output being logged by a different daemon to /run/system-manager/log/, one can shut down the separate logging services at separate points in the shutdown procedure. * https://github.com/systemd/systemd/issues/867 * https://bugzilla.redhat.com/show_bug.cgi?id=1214466
In Busybox removes support for systemd
> I don't know if it's the same with Guix but in NixOS it's just a matter of running `bundix` and all the Gemfile.lock dependencies are converted to a nix expression. I'm glad to hear that the infrastructure is working for you. There are, admittedly, some kinks on master, though I have a PR to make things much, much more robust: https://github.com/NixOS/nixpkgs/pull/8612 Unfortunately, while Bundler is generally a great, useful piece of software, there are aspects of its design that make it very difficult - borderline antithetical - to cooperate with packaging; if you look at the commit message in the above PR, you can see a thorough description of the challenges. I have an open PR for Bundler to try to make things a bit more amenable, and recently got the thumbs up with respect to the general idea: https://github.com/bundler/bundler/pull
Read the rest
/3775 Unfortunately, most Ruby deployments are quite imperative in nature - just push to a git repository, bundle install, and then bundle exec (that's leaving out all of the subtle prereqs: `apt-get install ...`, etc), as with Capistrano. There doesn't appear to be as much of a culture around packaging (yet), and so there hasn't been a demand for the tools to meet those needs. I hope that we can push through those problems and make it trivial for people to enjoy the ease/dependability/resiliency of package management, as many people have no idea what they're missing out on.
In Ruby on Guix
Nix is awesome. The last time I ran it stuff like gnome-shell wasn't packaged, which made it hard to use for a desktop (they did have a number of window managers packaged though). That's the hardest part about nix right now (the lack of packaged software). It is pretty easy to write your own packages for basic software though (and the Nix project is good about taking pull requests). Looks like gnome3 is packaged now, I'll have to give it another shot: https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/s...
In NixOS Linux

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.