{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibjoyzmzrre2wkeqeyszsmwpsfy2vk4zrlhdw6jaup7j6kja7mmhm",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mhieyjt5o4c2"
  },
  "path": "/t/ann-a-piece-of-flake-nix-repository/13812#post_3",
  "publishedAt": "2026-03-20T05:47:57.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "Jappie:\n\n> Why is nixpkgs being big is a problem, github eats the hosting cost after all. Why do we care how much MS has to pay for it?\n\nI keep a nixkpgs git repo on my PC and I noticed that GH just throttles download speed to 0 in case of pulling changes after long period. So I had to setup a “cron job” to pull changes every night. It is terrible for doing occasional contributions.\n\nFrom a user perspective fetching a nixpkgs snapshot in form of a tar file takes lot of traffic and time. I have to worry about minimizing number of roots and keep in sync nixpkgs across my projects.\n\nTo mitigate loads of PRs - nix discourse has the endless thread for asking help with merging PRs.\n\nRepo size is not only a problem by itself, but a sign that flakes are not working well.\n\nIt is like having a repo with /etc/hosts for the whole world instead of DNS.\n\nCentral repo at early stages helped nix to consolidate efforts, but it is an obstacle on the way to mainstream technology. Mandatory PR make nixkpkgs less inclusive than it could be.\n\nPet projects are grass root.\n\nJappie:\n\n> How flake solve the issues with nixpkgs being big? as far as I can tell, every flake I’ve seen uses nixpkgs. You’d need some way to bootsrap a nix ecosystem without nixpkgs. An indexing site doesn’t do this (although it may help with discoverability)\n\nFlakes can reference other flakes. Nixpkgs is just a flake, but a very big one. So e.g. a flake of a Haskell program could reference just a flake with Haskell packages instead of the whole nixpkgs.\n\nJappie:\n\n> How flakes compose? As far as I can tell they don’t. An example of flake composition would be nice. Composition is the fundemental problem you need to solve to split up a big thing (nixpkgs) into smaller parts.\n\nFlakes are pure functions with default arguments.\nFlake can override an argument of a flake it depends on.\nThe composition problem for flakes is there not much reusable flakes and there is no convenient mechanism for flake discovery and the wheel has turned full circle.",
  "title": "[ANN] A piece of flake nix repository"
}