Stable Package Sets for Haskell on Nix
Horizon Haskell is a publishing system for creating and maintaining collections of packages known to build and work together — reusable, self-hostable Nix inputs for your Haskell projects.
Package Sets
Publicly available package sets serving different purposes, each with its own policy. Pick one as a flake input, then override it as you like.
horizon-core
Tracks GHC master as closely as possible, provided the Horizon toolchain still builds.
horizon-advance
Extends horizon-core, tracking additional repositories earmarked for future-proofing.
horizon-platform
Tracks GHC releases as closely as possible — the canonical set for typical apps such as CRUD.
horizon-plutus
Tracks GHC releases as closely as possible, provided plutus-tx builds.
horizon-cardano
Tracks GHC releases as closely as possible, provided cardano-node builds.
horizon-devtools
Targets haskell-language-server and common devshell tools such as hlint.
horizon-moon-base
Targets print, fabrication and robotics.
horizon-ai
Targets AI tools.
horizon-biohaskell
Targets bioinformatics tools.
Why Horizon
Stable by construction
A curated selection of package versions known to build together, supplied as a single unit — bootstrap projects without dependency conflicts.
Recovery & future-proofing
Excels at recovering out-of-date packages and scouts compatibility issues ahead of major GHC releases, so your dependencies keep building.
nixpkgs-compatible
Built from nixpkgs library functions, so every set is API-compatible with haskellPackages — familiar helpers like extend just work.
Nix-native
Plans are nix-native and do not rely on Stackage, cabal's constraint solver or haskell.nix.
Self-hostable
Host your own set at any compiler version — public or private, version-controlled independently from its use site.
CI-hardened
devour-flake builds the whole set; on failure, per-package GitLab jobs isolate exactly which package broke.
Quick Start
Initialise a Haskell project against horizon-platform (GHC 9.8) in seconds.
mkdir horizon-haskell-template
cd horizon-haskell-template
nix flake init -t 'git+https://gitlab.horizon-haskell.net/templates/horizon-templates#platform'
Who is it for?
Developers
Try a Horizon Stable Package Set in your project — follow the Quick Start and you're building.
Maintainers
Manage dozens of Haskell projects and detect breakages across your portfolio automatically.
Managers
Run a self-hosted, private Stable Package Set for a whole organisation of Haskell teams.
Testimonials
“Horizon Haskell has made Nix builds for the Flora project more reliable and eased the task of updating dependencies for maintainers who are not trained in Nix. The reactivity and reliability of the Horizon team made it a clear choice for our needs.”
“horizon-advance lets me test my code against upstream versions of GHC and dependencies before they land in any stable channel, so I can keep my code forward-compatible and fix breakages with confidence.”
“Horizon Haskell is our default solution at Platonic Systems. It adeptly tackles build issues, caches GHC versions for efficiency, and keeps us current with the ecosystem. Its simplicity and reliability make it the go-to choice across all projects.”