@@ -0,0 +1,34 @@
1+{
2+ description = "Provide an environment for working in this repo";
3+
4+ # to handle mac and linux
5+ inputs.flake-utils.url = "github:numtide/flake-utils";
6+
7+ # we want to use a consistent nixpkgs across developers.
8+ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
9+
10+ outputs = all@{ self, nixpkgs, flake-utils, ... }:
11+ flake-utils.lib.eachDefaultSystem (system:
12+ let
13+ pkgs = import nixpkgs {
14+ inherit system;
15+ };
16+ packages =
17+ let
18+ # everything we want available in our development environment that isn't managed by
19+ # npm, spago
20+ # we do not differentiate between libraries needed for building and tools at the moment.
21+ sharedPackages = with pkgs; [
22+ nodejs-16_x
23+ ];
24+ in
25+ sharedPackages;
26+ in {
27+ # produce our actual shell
28+ devShell = pkgs.mkShell rec {
29+ # make our packages available
30+ buildInputs = packages;
31+ };
32+ }
33+ );
34+}