{
  pkgs ? import <nixpkgs>,
  lib,
  templ ? pkgs.templ,
  gitignore,
  ...
}: let
  v = "2024-12-15";

  npm = pkgs.buildNpmPackage {
    name = "Keiko's Work NPM Build";
    version = v;

    src = gitignore.lib.gitignoreSource ./.;

    npmDepsHash = "sha256-8J4oIl4B9gOQcfq4KPUMPnrlgB1vde3x0YVOUBdWCU8=";
    npmPackFlags = ["--ignore-scripts"];

    buildPhase = ''
      runHook preBuild

      npm run unocss

      runHook postBuild
    '';

    installPhase = ''
      runHook preInstall

      mkdir -p $out
      cp -r ./* $out

      runHook postInstall
    '';
  };
in
  pkgs.buildGoModule {
    name = "Keiko's Work";
    pname = "keikos.work";

    version = v;

    src = npm;

    nativeBuildInputs = [
      pkgs.nodejs_20
    ];

    vendorHash = "sha256-Hhvyh4M64LyuWbcKWSVWR20idIDIH/ZqLSDT2gGFqj4=";

    preBuild = ''
      ${lib.escapeShellArg (lib.getExe' templ "templ")} generate .
    '';

    meta = {
      mainProgram = "keikos.work";
    };
  }
