{
  description = "A webserver to create files for testing purposes";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";

    microvm = {
      url = "github:astro/microvm.nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {
    self,
    nixpkgs,
    ...
  } @ inputs: let
    supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
    forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
    pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system}.extend overlay);

    overlay = final: prev: rec {
      python3Packages = prev.python3Packages.overrideScope (pfinal: pprev: {
        packageNameToDrv = x: builtins.getAttr (cleanPythonPackageName x) final.python3Packages;
      });

      cleanPythonPackageName = x: let
        cleanName = builtins.match "([a-z,A-Z,0-9,_]+).*" x;
      in
        if cleanName != null
        then builtins.elemAt cleanName 0
        else builtins.warn "Could not determine package name from '${x}'" null;
    };

    pyproject = builtins.fromTOML (builtins.readFile ./pyproject.toml);

    buildDependencies = forAllSystems (system: builtins.map pkgs.${system}.python3Packages.packageNameToDrv pyproject.build-system.requires);
    runtimeDependencies = forAllSystems (system: builtins.map pkgs.${system}.python3Packages.packageNameToDrv pyproject.project.dependencies);
    optionalDependencies = forAllSystems (system: builtins.mapAttrs (name: value: builtins.map pkgs.${system}.python3Packages.packageNameToDrv value) pyproject.project.optional-dependencies);
  in {
    # `nix build`
    packages = forAllSystems (system: rec {
      default = testdata;

      testdata = pkgs.${system}.python3Packages.buildPythonPackage {
        pname = pyproject.project.name;
        version = pyproject.project.version;
        src = ./.;

        pyproject = true;

        build-system = buildDependencies.${system};

        dependencies = runtimeDependencies.${system};

        optional-dependencies = optionalDependencies.${system};

        nativeCheckInputs = with pkgs.${system}.python3Packages; [
          pytest
        ];

        checkPhase = ''
          python -m pytest
        '';
      };

      vm = self.nixosConfigurations.vm.config.microvm.declaredRunner;
    });

    # `nix fmt`
    formatter = forAllSystems (system: pkgs.${system}.alejandra);

    # `nix develop`
    devShells = forAllSystems (system: rec {
      default = venv;

      venv = pkgs.${system}.mkShell {
        shellHook = ''
          if [ ! -d .venv/ ]; then
            echo "Creating Virtual Environment..."
            ${pkgs.${system}.python3}/bin/python3 -m venv .venv
          fi

          alias activate='source .venv/bin/activate'

          echo "Entering Virtual Environment..."
          source .venv/bin/activate
        '';
      };
    });

    # NixOS Module
    nixosModules.default = import ./nix/module.nix inputs;
  };
}