{
  description = "Support developing Home Manager documentation";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    scss-reset = {
      url = "github:andreymatin/scss-reset/1.4.2";
      flake = false;
    };
  };

  outputs = { self, nixpkgs, scss-reset }:
    let
      supportedSystems = [
        "aarch64-darwin"
        "aarch64-linux"
        "i686-linux"
        "x86_64-darwin"
        "x86_64-linux"
      ];

      lib = nixpkgs.lib;

      forAllSystems = lib.genAttrs supportedSystems;

      flakePkgs = pkgs: {
        p-build = pkgs.writeShellScriptBin "p-build" ''
          set -euo pipefail

          export PATH=${lib.makeBinPath [ pkgs.coreutils pkgs.rsass ]}

          tmpfile=$(mktemp -d)
          trap "rm -r $tmpfile" EXIT

          ln -s "${scss-reset}/build" "$tmpfile/scss-reset"

          rsass --load-path="$tmpfile" --style compressed \
            ./static/style.scss > ./static/style.css
          echo "Generated ./static/style.css"
        '';
      };
    in {
      devShells = forAllSystems (system:
        let
          pkgs = nixpkgs.legacyPackages.${system};
          fpkgs = flakePkgs pkgs;
        in {
          default = pkgs.mkShell {
            name = "hm-docs";
            packages = [ fpkgs.p-build ];
          };
        });
    };
}