a-piece-of-flake: Nix flake repository for everyone
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
Modules
[Index] [Quick Jump]
- PieceOfFlake
- PieceOfFlake.Acid
- PieceOfFlake.Aeson
- PieceOfFlake.CmdArgs
- PieceOfFlake.CmdRun
- PieceOfFlake.Fetcher
- PieceOfFlake.Flake
- PieceOfFlake.Http
- PieceOfFlake.Index
- PieceOfFlake.Page
- PieceOfFlake.Prelude
- PieceOfFlake.Req
- PieceOfFlake.Stats
- PieceOfFlake.Stm
- PieceOfFlake.SubmitList
- PieceOfFlake.Th
- PieceOfFlake.TotalMath
- PieceOfFlake.WebService
- PieceOfFlake.Yesod
Downloads
- a-piece-of-flake-0.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
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] |