a-piece-of-flake: Nix flake repository for everyone

[ bsd3, library, program, system ] [ Propose Tags ] [ Report a vulnerability ]

The main idea behind this project is to provide a quick and simple interface for publishing Nix flakes.

Flakes have become relatively mature and address the central repository issue. However, the Nixpkgs repository on GitHub still has more that 5k open issues and a comparable number of pull requests, and continues to receive many commits every day. Getting a pull request for a new tool merged into Nixpkgs can be difficult - the Nixpkgs README explicitly discourages people from submitting their “pet” projects.

The Nixpkgs repository is huge. It contains more than 120k packages, but the majority of them are not native to Nix. For example, about 10% are Haskell packages imported. Therefore, this large number cannot be used as a reliable measure of how well the publishing process is developed in Nix. For instance, the PyPy repository alone currently contains almost 900k packages.

It is also important to note Python is the most popular general-purpose programming language, and its publishing process was designed by programmers for programmers. Yet there is no pull-request step in the workflow. The interface is essentially “upload and forget”, which has a significant positive impact on the conversion funnel of Python packages.

Flakes are easy to install, but the publishing workflow is not yet polished enough. The current approach to distributing flakes appears to have inherinted many characteristics of the Nixpkgs workflow.

For Nixpkgs, this was the natural way of development, because all derivations form a large and coupled Nix expression split across many files within a single Git repository.

Service

The service is deployed at a-piece-of-flake

Development environment

$ nix develop
$ emacs &
$ cabal build
$ cabal test

Update cachix

nix build --no-link --print-out-paths | cachix push piece-of-flake
Cachix public key

piece-of-flake.cachix.org-1:JamWDEABLpvWhGHIK7Xn/qYFbdZqb6ne7IAF62fXyFY=

Release

$ nix build $(e -static true)
$ ./result/bin/a-piece-of-flake run

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1
Change log changelog.md
Dependencies a-piece-of-flake, acid-state (<1), add-dependent-file (<1), aeson (<3), aeson-pretty (<1), base (>=4.7 && <5), binary (<1), blaze-markup (<1), bytestring (<1), cryptohash-sha1 (<1), deepseq (<2), either (<6), exceptions (<1), file-embed (<1), filepath (<2), full-text-search (<1), generics-sop (<1), hostname (<2), http-types (<1), lens (<6), list-t (<2), lrucaching (<1), memory (<1), monad-logger (<1), mtl (<3), network (<4), non-empty (<1), non-negative-time-diff (>=0.0.2 && <1), optparse-applicative (<1), prettyprinter (<2), process (<2), psqueues (<1), ref-tf (<1), refined (<1), regex-tdfa (<2), relude (>=1.2.2 && <2), req (<4), retry (<1), ring-buffer (<1), safecopy (<1), sop-core (<1), statistics (<1), stm (<3), stm-containers (<2), tagged (<1), tar (<1), template-haskell (<3), text-zipper (<1), time (<2), time-units (<2), tokenize (<1), trace-embrace (>=1.3 && <2), unliftio (<1), vector (<1), wai (<4), wai-extra (<4), warp (<4), warp-tls (<4), wl-pprint-text (<2), yesod-core (<1.8) [details]
Tested with ghc ==9.12.2
License BSD-3-Clause
Copyright Daniil Iaitkov 2026
Author Daniil Iaitskov
Maintainer dyaitskov@gmail.com
Uploaded by DaniilIaitskov at 2026-03-17T11:03:08Z
Category System
Home page http://github.com/yaitskov/a-piece-of-flake
Bug tracker https://github.com/yaitskov/a-piece-of-flake/issues
Source repo head: git clone https://github.com/yaitskov/a-piece-of-flake.git
Distributions
Executables a-piece-of-flake
Downloads 0 total (0 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]