Nix

Nix package manager. See also NixOS.

  • https://nix.dev – An opinionated guide for developers getting things done using the Nix ecosystema.
Links to this page
  • PureScript mini-tutorial using Nix

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

  • 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.

  • No JavaScript
    PureScript generally relies on NodeJS toolchain being peppered in the project repo, but purs-nix aims to provide a “No JavaScript” development environment using Nix.
  • NixOS

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

  • 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.

  • Haskell

    Entirely optional, but if you are feeling adventurous consider getting acquainted with Nix, which in turns allows you to leverage haskell-template for instantly getting started with bootstraping Haskell projects with full IDE support in VSCode.

  • 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.

  • 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 CONTRIBUTING.md) - 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.

  • 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.

  • 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.

  • 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.*