{ description = "My personal website"; inputs = { nixpkgs = { url = "github:nixos/nixpkgs/nixos-23.05"; }; flake-utils = { url = "github:numtide/flake-utils"; }; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in rec { packages.website = pkgs.stdenv.mkDerivation { name = "website"; src = self; buildInputs = [ pkgs.zola ]; buildPhase = '' zola build ''; installPhase = '' mkdir -p $out cp -Tr public $out/public ''; }; packages.default = self.packages.${system}.website; apps.default = flake-utils.lib.mkApp { drv = pkgs.writeShellApplication { name = "serve"; runtimeInputs = [ pkgs.zola ]; text = '' zola serve ''; }; }; devShells.default = pkgs.mkShell { inputsFrom = [ self.packages.${system}.website ]; }; } ); }