{
  description = "Web dev + Go";

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

  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs {
       	  inherit system;
       	  config.allowUnfree = true;
        };
        creamlinux = import (builtins.fetchTarball {
            url = "https://github.com/Novattz/creamlinux-installer/archive/main.tar.gz";
            sha256 = "sha256:1n0iqrqw63c3m6gidkq7rf9d5yqm9gqsmal4wbgr370pkndbfpdi"; # See above
          }) { inherit pkgs; };
      in
      {
        devShells.default = pkgs.mkShell {
         # In the dev shell, you get more tools than just what's needed to build
          packages = with pkgs; [
            go
            gopls
            gotools
            air
            sqlite
            sqlitebrowser
            gcc
            creamlinux
          ];

          # Variables
          CGO_ENABLED = "1";

          shellHook = ''
            echo "Go loaded"
            echo "air            -> Hot reload"
            echo "sqlite3 app.db -> Inspect the DataBase"
            export PORT="8080"
          '';
        };
      });
}
