{
  description = "bevy flake";

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

  outputs =
    {
      nixpkgs,
      flake-utils,
      ...
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        overlays = [ ];
        pkgs = import nixpkgs {
          inherit system overlays;
        };
      in
      {
        devShells.default =
          with pkgs;
          mkShell {
            buildInputs =
              [
                pkg-config
                # for Linux
                # Audio (Linux only)
                alsa-lib
                # Cross Platform 3D Graphics API
                vulkan-loader
                # For debugging around vulkan
                vulkan-tools
                # Other dependencies
                libudev-zero
                xorg.libX11
                xorg.libXcursor
                xorg.libXi
                xorg.libXrandr
                libxkbcommon
                # Fast linker
                clang
                mold
                # Rustup
                rustup
                wayland # To use the wayland feature
                # Bug tracking
                git-bug
                # wasm builder
                wasm-bindgen-cli_0_2_100
                # wasm-opt
                binaryen
                simple-http-server
                # Itch.io uploads
                butler
                # Replacement for Make
                just
              ];
            LD_LIBRARY_PATH = lib.makeLibraryPath [
                alsa-lib
                libxkbcommon
                udev
                vulkan-loader
                wayland
                xorg.libX11
                xorg.libXcursor
                xorg.libXi
            ];
            CARGO_TARGET_DIR = "/home/pop/.cargo/target";
          };
      }
    );
}


