{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    clj-nix.url = "github:jlesquembre/clj-nix";
  };

  outputs = { self, ... }@inputs:
    inputs.flake-utils.lib.eachDefaultSystem (system:
      let pkgs = import inputs.nixpkgs {
            inherit system;
            overlays = [
              inputs.clj-nix.overlays.default
            ];
          };
      in {
        packages = rec {
          ldap-nginx-plumber = inputs.clj-nix.lib.mkCljApp {
            pkgs = inputs.nixpkgs.legacyPackages.${system};
            modules = [
              {
                name = "msyds/ldap-nginx-plumber";
                version = "1.0.0";
                main-ns = "ldap-nginx-plumber.main";
                projectSrc = ./.;

                nativeImage = {
                  # Disable for faster build times.
                  # enable = true;
                };
              }
            ];
          };

          default = ldap-nginx-plumber;
        };

        devShells.default = pkgs.mkShell {
          packages = with pkgs; [
            clojure-lsp
            cljfmt
            clojure
            babashka
          ];
        };
      });
}
