{
  description = "My personal website";
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    devshell = {
      url = "github:numtide/devshell";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        systems.follows = "systems";
      };
    };
    flake-utils = {
      url = "github:numtide/flake-utils";
      inputs.systems.follows = "systems";
    };
    systems.url = "github:nix-systems/default";
  };
  outputs = { self, nixpkgs, devshell, flake-utils, ... }:
    flake-utils.lib.eachDefaultSystem
      (system:
        let
          pkgs = import nixpkgs { inherit system; overlays = [ devshell.overlays.default ]; };
          pkg = pkgs.stdenv.mkDerivation {
            pname = "www.chvp.be";
            version = "unstable";
            src = ./src;

            buildPhase = ''
              ${pkgs.zola}/bin/zola build
            '';

            installPhase = ''
              cp -r public $out
            '';
          };
          shell = pkgs.devshell.mkShell {
            name = "Website";
            packages = with pkgs; [
              nixpkgs-fmt
              zola
            ];
          };
        in
        {
          packages = {
            default = pkg;
            "www.chvp.be" = pkg;
          };
          devShells = rec {
            default = shell;
            "www.chvp.be" = shell;
          };
        }
      ) // {
      overlays.default = (curr: prev: {
        "www.chvp.be" = self.packages.${curr.system}.default;
      });
    };
}
