with one click
nix-haskell
// Use this when working on a Haskell project with Nix. Covers haskell-flake setup, adding/overriding dependencies, package settings, and devShell configuration.
// Use this when working on a Haskell project with Nix. Covers haskell-flake setup, adding/overriding dependencies, package settings, and devShell configuration.
Use this when setting up Nix for a development project (devShell + package build) and you care about `nix develop` being fast. Covers the zero-inputs flake.nix + npins + default.nix/shell.nix layout, sub-flakes for non-user-facing Nix, and language-specific recommendations.
Use this when a flake's `nix develop` / `direnv allow` / `nix flake archive` is slow on a fresh checkout (the "first time takes 10 minutes" complaint). Diagnoses where the time actually lives and how to shrink the flake.lock input graph without changing build outputs.
Use this when adding Nix-based local runs for an existing Playwright e2e suite. Provides a self-contained `tests/shell.nix` that uses `nixpkgs-latest` for `playwright-driver.browsers`, plus a justfile entry — works on NixOS where `npx playwright install --with-deps` cannot.
Write a programming essay or blog post in the voice of the canon — Spolsky, Yegge, Graham, Mickens, Dijkstra, Brooks, Nystrom, Kleppmann, patio11. Invoke when the user wants to argue an idea about software, architecture, languages, or the craft — not a debugging war story (use debugging-story for that), not a tutorial, not a release note. The audience is working developers worldwide with taste and strong opinions of their own.
Use this when setting up CI for a GitHub repository — offers GitHub Actions or Vira depending on the project
Use this when diagnosing or fixing a user's Nix installation — checks flakes, version, caches, max-jobs, direnv, rosetta, trusted-users, and shell config
| name | nix-haskell |
| description | Use this when working on a Haskell project with Nix. Covers haskell-flake setup, adding/overriding dependencies, package settings, and devShell configuration. |
Use haskell-flake — a flake-parts module. Start from haskell-template. Requires a .cabal or cabal.project file; haskell-flake scans for it automatically.
You MUST use git clone https://github.com/srid/haskell-template <project-dir> to start a new project. Do NOT fetch individual files, do NOT use om init, do NOT write flake.nix from scratch. Clone the template, then rename the package in .cabal and nix/modules/flake/haskell.nix.
Projects based on haskell-template use nixos-unified autowiring. Do NOT write Nix configuration inline in flake.nix. The flake.nix delegates entirely to nixos-unified, and all Nix configuration goes in ./nix/modules/flake/*.nix files.