Nix package manager.

Links to this page
  • Announcing Ema - Static Sites in Haskell

    A little over a year ago I created the rib static site generator in Haskell based on Shake and ghcid. The idea was to be able to write a more intuitive (so no Makefile-like rules) set of instructions for building a static site, in a type-safe language while enabling quick recompilation cycle that ghcid provided, all made reproducible in Nix.

  • Cerveau, a future-proof web app for notes

    Nix is used for both developent and deployment; the production version in particular is deployed to a DigitalOcean droplet running NixOS. Nix makes reproducible development environments easy and possible. A testament to this is how easy it is to contribute to neuron (see - as with one command, nix-shell, you get the full development enviornment including Haskell IDE support starting from a pristine system with nothing but Nix installed.

  • A brief F# exploration
    Overriding dependencies to use a fork in straightforward manner is virtually impossible. You have to create a local Nuget repo containing the binary of your overriden dependency. Whereas in Haskell world, one can easily use Nix to use a Git repo (Neuron does this) as a package dependency.
  • Creating a new Haskell project with IDE support using Nix

    I create new Haskell libraries and applications using Nix, along with IDE support in VSCode as follows.

  • Obelisk tutorial, Markdown preview with Reflex

    You will notice that Obelisk uses Nix to build your project. The command ob run (described below) will abstract over the Nix stuff, including any GHCi handling, so you do not have to deal directly with Nix except for overriding dependencies.

  • NixOS

    NixOS is a Linux distribution based on the purely functional Nix package manager, with declarative configuration.

  • Building Static Haskell binaries using Nix

    Static binaries are useful to distribute Haskell applications without requiring the user to build it themselves. Fully static Haskell executables are mostly supported by Nix; see this issue for details on what’s left.

  • Nix-ifying Rust projects

    While most would be satisfied with rustup, I wanted to use Nix for writing any new project in Rust - especially as I see the value of Nix, and I already use NixOS. It took a bit of digging to evaluate the existing options, and come up with a template Nix setup for new projects.

  • PureScript mini-tutorial using Nix

    If you already use Nix (or NixOS), getting a quick feel for PureScript is just a matter of running: