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, 5:05:26 PM UTC.

Apfel-LLM: Drop direct repository link

Read the discussion on HN. A full-thread summary is not available yet.

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

59 sources
Nix[1] is a package manager for linux and macos that solves this problem beautifully. You can have any variation (version, build options, dependencies, etc) of a package installed natively without conflicting with eachother because the filesystem path includes a hash of the build instructions. It works really, really well for reproducibility and eliminating the "works on my machine" problem. I've been using it exckusively for dev machines and servers for years. [1] https://github.com/NixOS/nixpkgs
In Oasis: a small statically-linked Linux system
I found the documentation to be plentiful compared to other projects, though it's not as comprehensive as the Arch Wiki. The docs definitely mention how to install KDE [1] and firefox [2]. To learn more about Nix, I'd recommend grepping the nixpkgs [3] repository once you grasp the basics of the Nix language (Nix Pills [4] would be a good start for that). Since everything in the Nix official repository belongs in nixpkgs, it's easy to search for the information I want. I just wish CentOS and Debian had a way of searching across the entire codebase this easily when I couldn't figure out something from the docs. [1]: https://nixos.org/manual/nixos/stable/#sec-x11 [2]: https://nixos.org/manual/nix/stable/#idm140737322634320 [3]: https://github.com/NixOS/nixpkgs [4]: https://nixos.org/guides/nix-pills/
In GNU Guix 1.2.0
Agreed, the language support situation is a very mixed one in nixpkgs, where support ranges from rudimentary (or even non-existing) to well integrated and supported. Particularly the Erlang/Elixir situation is - as you already brought up a while ago[1] - very rudimentary and really needs to be improved. Right now, I do manage my Erlang dependencies with Nix only and without using rebar/mix (particularly since I do want full release upgrades with hot code reloading), but manually managing those dependencies certainly doesn't scale well for all projects, especially if they already use rebar/mix. I also haven't looked into newer projects like nix-elixir[2], but as another commenter here mentioned, there are typically tools available to convert between the language-specific package managers, but they all come with their own set of issues and
Read the rest
tradeoffs (eg. duplicating dependency information or importing from other derivations at evaluation time) so they might not be suitable for your project. The situation with secrets is a long lasting issue[3] with several attempts of solving, but so far the best practice is to just to either leave secrets out of the Nix store or just make sure the entire Nix store is not accessible. Since I also use NixOS for a few days, I can imagine why it could be frustrating if things don't work out of the box like on other distros. Having had my own adventures patching things like no tomorrow, I know sometimes the effort to do this could be quite time consuming, especially the GOG games[4] you mention. So I'd say if you frequently use software that is problematic on NixOS and don't want to go through the hoops of patching or making workarounds like eg. Docker or FHS user environments[5], I'd probably stay off NixOS. Personally however I think it is worth going through a few hoops, since to me it shifts the frustration of "my system broke during an update" to "just want to get X to work NOW" and among other nice benefits (eg. bisecting whole systems, rollbacks and/or using specific packages before they broke) I'd rather prefer a working and reproducible system. [1]: https://github.com/NixOS/nixpkgs/issues/53834 [2]: https://github.com/hauleth/nix-elixir [3]: https://github.com/NixOS/nix/issues/8 [4]: https://github.com/openlab-aux/vuizvui/tree/0aa8064087b895d2... [5]: https://nixos.org/manual/nixpkgs/stable/#sec-fhs-environment...
In One Week of NixOS
This is a good overview of NixOS however it's very limited and barely scratches the surface of what Nix can do. I consider it a complete replacement for the "reproducible environment" problem that some programming languages solve (e.g. Python's virtualenv, Haskell's cabal repl), among others. A simple example of this is when I want to run a Python script from the internet, I can execute nix-shell --run "python3 foo.py" -p "python3.withPackages (ps: with ps; [ numpy ])" and now I'm in a shell where numpy is avaliable to the Python 3 interpreter. Or I could test the Haskell QuickCheck library and run nix-shell --run "ghci" -p "haskellPackages.ghcWithPackages (ps: with ps; [ QuickCheck ])" See[0] for a way to run programs without even installing them by prefixing them with a comma, e.g. `, hello`. Or what about running any Linux ELF
Read the rest
binary by automatically getting their shared dependencies at runtime[1]? Or generating bootable ISOs from your NixOS configuration[2], cross-compiling with little effort[3], and so on. These problems have already been solved to varying degrees in other places, but Nix lets you unify them (think of the huge amounts of libraries downloaded by cargo, cabal, node and so on scattered amongst projects and your home folder, Nix stores everything in /nix/store/) into a single framework. I'd like to also say that the Nixpkgs repository[4] is super easy to contribute to, just open a PR on GitHub as opposed to sending patches via mailing lists, which is checked via the CI. I'm not sure if there's something analogous on other package repositories but there's also a bot[5] that opens thousands of PRs updating and testing packages automatically. [0] https://github.com/Shopify/comma [1] https://github.com/Lassulus/nix-autobahn [2] https://github.com/nix-community/nixos-generators [3] https://matthewbauer.us/blog/beginners-guide-to-cross.html [4] https://github.com/NixOS/nixpkgs/ [5] https://github.com/r-ryantm
In One Week of NixOS
You can but unless you use NixOS the experience might not be great. A few months ago I tried migrating my development environment from Ansible to Nix. My playbooks are basically in alphabetical order and so that meant starting with Alacritty. I immediately hit two issues: - A conflict between the version of fontconfig the package was compiled with and the version of fontconfig installed on my system. - Nix's OpenGL problem. [0] They're easy enough to work around but I wonder how big the list would've gotten if I hadn't stopped there. [0] https://github.com/NixOS/nixpkgs/issues/9415
In One Week of NixOS
> What you wrote is true, but it also seems to me unlikely that the OP is going to set up a sandboxed hermetic build to process a handful of pngs for her zine. But it's trivial! Assuming you fix the OP's Makefile (so much for Makefile syntax usability): # put into Makefile THINGS_TO_CONVERT := $(wildcard *.svg) all: $(patsubst %.pdf,%.svg,$(THINGS_TO_CONVERT)) inkscape $< --export-text-to-path --export-pdf=$@ # put into default.nix with import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/7ad5e816faba3f808e2a8815b14d0f023a4e2160.…") {}; stdenv.mkDerivation { name = "zine-images"; src = ./.; buildInputs = [ inkscape ]; installPhase = "mkdir $out && cp *.pdf $out"; } Now make sure you have sandbox=true in /etc/nix.conf, run `nix build` in the directory, and
Read the rest
boom done: hermetic build of zine images. Good thing too, I got a warning about --export-pdf being deprecated when I ran this. Note that running make or the dependency on make is not explicitly specified, mkDerivation has some basic smarts to figure out from the presence of a Makefile that it should run make. (Hardcoding the version of nixpkgs directly into the default.nix just for demo purposes, better to use niv or similar to manage a json file with versions for you).
In Ninja: A simple way to do builds
I also digitized some VHS tapes recently. Here's what I learnt: Video capture: 1. there seems to be no capture device on the market that has a linux driver 2. some capture devices only provide their drivers on a CD/DVD 3. elgato video capture works (as long as the computer doing the capture is fast enough to process input in real time, otherwise the output is laggy) Video processing (linux): 1. there's a bug in blender[1] that introduces audio skew to elgato-captured footage upon rendering. the skew is not there while editing 2. kdenlive[2] works fine with no audio skew [1]: https://github.com/NixOS/nixpkgs/blob/6b74f99abd2f4c62e8093c... [2]: https://github.com/NixOS/nixpkgs/blob/f6cd17269ea00766319388...
In My Eight-Year Quest to Digitize 45 Videotapes
Nix packages don't contain any source code. The package definition describes how to fetch the source code from a source (like a Git repo or a hosted archive) and build it. The built result only contains what is necessary at runtime. A sizeable amount of packages don't even fetch source code but a prebuilt binary which is then fixed up to work with Nix. There is a source cache, but it is optional. As an example, check out ripgrep [1]. It uses `fetchFromGithub` to retrieve the code. [1] https://github.com/NixOS/nixpkgs/blob/3bb54189b0c8132752fff3...
In NixCon Live

Showing the 15 most recent of 59 sources. Enable JavaScript to search and browse every indexed mention.

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.