{
  description = "zoo.dev modeling-app";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    rust-overlay.url = "github:oxalica/rust-overlay";
    naersk.url = "github:nix-community/naersk";
  };

  outputs = {
    self,
    nixpkgs,
    rust-overlay,
    naersk,
  }: let
    overlays = [
      (import rust-overlay)
      (self: super: {
        rustToolchain = super.rust-bin.stable.latest.default.override {
          targets = ["wasm32-unknown-unknown"];
          extensions = ["rustfmt" "llvm-tools-preview" "rust-src"];
        };

        # stand-alone nightly formatter so we get the fancy unstable flags
        nightlyRustfmt = super.rust-bin.selectLatestNightlyWith (toolchain:
          toolchain.default.override {
            extensions = ["rustfmt"]; # just the formatter
          });
      })
    ];

    allSystems = [
      "x86_64-linux"
      "aarch64-linux"
      "x86_64-darwin"
      "aarch64-darwin"
    ];

    forAllSystems = f:
      nixpkgs.lib.genAttrs allSystems (system:
        f {
          pkgs = import nixpkgs {
            inherit overlays system;
          };
          system = system;
        });
  in {
    devShells = forAllSystems ({pkgs, ...}: {
      default = pkgs.mkShell {
        packages =
          (with pkgs; [
            rustToolchain
            nightlyRustfmt
            cargo-criterion
            cargo-nextest
            cargo-sort
            just
            postgresql.lib
            openssl
            pkg-config
            nodejs_22
            electron
            playwright-driver.browsers
            chromedriver
            wasm-pack
            python3Full
          ])
          ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
            libiconv
            darwin.apple_sdk.frameworks.Security
          ]);

        TARGET_CC = "${pkgs.stdenv.cc}/bin/${pkgs.stdenv.cc.targetPrefix}cc";
        LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
        ELECTRON_OVERRIDE_DIST_PATH =
          if pkgs.stdenv.isDarwin
          then "${pkgs.electron}/Applications/Electron.app/Contents/MacOS/"
          else "${pkgs.electron}/bin";
        PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = true;
        PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH = "${pkgs.playwright-driver.browsers}/chromium-1091/chrome-linux/chrome";
        PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright-driver.browsers}";
        NODE_ENV = "development";
        RUSTFMT = "${pkgs.nightlyRustfmt}/bin/rustfmt";
        CHROMEDRIVER = "${pkgs.chromedriver}/bin/chromedriver";
      };
    });

    packages = forAllSystems ({
      pkgs,
      system,
    }: let
      naersk-lib = pkgs.callPackage naersk {
        cargo = pkgs.rustToolchain;
        rustc = pkgs.rustToolchain;
      };
    in {
      kcl-language-server = naersk-lib.buildPackage {
        pname = "kcl-language-server";
        version = "0.1.0";
        release = true;

        src = ./rust;

        cargoBuildOptions = opt: opt ++ ["-p" "kcl-language-server"];
        buildInputs = [pkgs.openssl pkgs.pkg-config];
      };
      default = self.packages.${system}.kcl-language-server;
    });
  };
}
