Nix-based templating

Request

{
  basePath = "/template";
  body = "/nix/store/5n90qy4wsm9r91m8p8dslp37hsmlna17-body";
  bodyHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
  error = null;
  headers = {
    Accept = [
      "*/*"
    ];
    Accept-Encoding = [
      "gzip, br, zstd, deflate"
    ];
    User-Agent = [
      "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
    ];
  };
  host = "nixpresso.dev";
  method = "GET";
  options = {
    allowStore = true;
    allowedModes = [
      "serve"
      "log"
      "derivation"
    ];
    allowedPaths = [ ];
    allowedTypes = [
      "string"
      "path"
      "derivation"
    ];
    basePath = "";
    evalCache = true;
    handler = "path:/nix/store/dp8axxxcylqrlycdn5r6jjqaiiw331n1-source#handlers.aarch64-linux.default";
    maxBuildTime = "10m0s";
    maxEvalTime = "5m0s";
    maxRequestBytes = 33554432;
    maxRequestTime = "5m0s";
    maxResponseBytes = 134217728;
    maxRunTime = "10m0s";
    nixArgs = [ ];
    runArgs = [ ];
    verbose = 10;
  };
  path = "";
  proto = "HTTP/2.0";
  query = { };
  remoteAddr = "3.145.99.252:7108";
  tls = {
    cipherSuite = "TLS_AES_128_GCM_SHA256";
    didResume = false;
    handshakeComplete = true;
    negotiatedProtocol = "h2";
    peerCertificates = [ ];
    serverName = "nixpresso.dev";
    verifiedChains = [ ];
    version = "TLS 1.3";
  };
  uri = "/template";
}