# Documentation

> Guides, reference, operations, and developer docs for PDF Server.

This file follows the llms.txt convention (https://llmstxt.org).
Full corpus: https://pdf.c0va23.dev/llms-full.md

## Task sections

Each section is the docs one kind of task needs — in reading order, framed by
that section's landing page and its cross-links — so an agent handed one link
can do most of that work and follow the links for the rest.

- [Template authoring](https://pdf.c0va23.dev/llms-template-authoring.md) — Write one template that renders your JSON data to a PDF: engines, validation, styling, fragments, assets, and print timing.
- [Compositions](https://pdf.c0va23.dev/llms-compositions.md) — Merge many templates into a single PDF with a data-driven plan (jq or JavaScript planners).
- [Template workflow](https://pdf.c0va23.dev/llms-template-workflow.md) — Run PDF Server on your own templates and iterate: hot reload, the tester UI, validation, and shipping your own image.
- [Operations](https://pdf.c0va23.dev/llms-operations.md) — Deploy, size, and observe PDF Server in production: image and factory choice, non-root, pool and timeout sizing, logs, traces, and health.
- [Security](https://pdf.c0va23.dev/llms-security.md) — Trust boundaries, threat model, and the responsibilities the design places on operators.
- [Reference](https://pdf.c0va23.dev/llms-reference.md) — The exact contracts: every HTTP route, every CLI flag and env var, the OpenAPI spec, and the status/metadata endpoints.
- [Server development](https://pdf.c0va23.dev/llms-server-development.md) — Modify or extend the Go server itself: the render path through every layer, the browser pool, the store, the callback server, and extension points.
- [Full corpus](https://pdf.c0va23.dev/llms-full.md) — every doc at once.

## All docs

- [Documentation](https://pdf.c0va23.dev/md/index.md): Guides, reference, operations, and developer docs for PDF Server.
- [Overview](https://pdf.c0va23.dev/md/getting-started/overview.md): What PDF Server is, when to use it, and how a render request flows through it.
- [Template authoring](https://pdf.c0va23.dev/md/guides/index.md): Write one template that renders your JSON data to a PDF: engines, validation, styling, fragments, assets, and print timing.
- [Your first template](https://pdf.c0va23.dev/md/getting-started/your-first-template.md): The anatomy of a template directory and each file it may contain.
- [Template structure](https://pdf.c0va23.dev/md/guides/template-structure.md): The full reference for a template directory: files, naming, and loading order.
- [Template engines](https://pdf.c0va23.dev/md/guides/engines/index.md): The four template engines and the raw and remote template types.
- [Mustache](https://pdf.c0va23.dev/md/guides/engines/mustache.md): Simple, logic-light templating — the highest-priority engine.
- [Handlebars](https://pdf.c0va23.dev/md/guides/engines/handlebars.md): Logic-light templating with helpers and partials.
- [Go html/template](https://pdf.c0va23.dev/md/guides/engines/go-template.md): The most powerful engine, with Go's template language and auto-escaping.
- [Static HTML](https://pdf.c0va23.dev/md/guides/engines/static.md): Ship a fixed HTML document, optionally made dynamic with client-side JavaScript.
- [Data validation](https://pdf.c0va23.dev/md/guides/data-validation.md): Validate request data with JSON Schema before rendering.
- [Assets](https://pdf.c0va23.dev/md/guides/assets.md): Ship CSS, images, fonts, and other static files with a template.
- [Partials](https://pdf.c0va23.dev/md/guides/partials.md): Reusable template fragments for Handlebars, Go, and Mustache — including Markdown partials.
- [Template helpers](https://pdf.c0va23.dev/md/guides/helpers.md): Built-in helpers for the Handlebars and Go template engines.
- [Headers & footers](https://pdf.c0va23.dev/md/guides/header-footer.md): Add running page headers and footers to your PDFs.
- [PDF parameters](https://pdf.c0va23.dev/md/guides/pdf-params.md): Control page size, margins, orientation, scale, and rendering via params.json.
- [Lifecycle events](https://pdf.c0va23.dev/md/guides/lifecycle-events.md): Control when the PDF is printed — including waiting for async content via the callback event.
- [Compositions](https://pdf.c0va23.dev/md/guides/compositions.md): Merge many templates into a single PDF with a data-driven plan (jq or JavaScript planners).
- [Raw PDF](https://pdf.c0va23.dev/md/guides/engines/raw.md): Serve a pre-built PDF as-is — a building block for compositions.
- [Remote HTTP](https://pdf.c0va23.dev/md/guides/engines/remote-http.md): Fetch a document from another service as the render output.
- [Remote templates](https://pdf.c0va23.dev/md/guides/remote-templates.md): Delegate rendering by fetching a document from another HTTP service.
- [Template workflow](https://pdf.c0va23.dev/md/getting-started/index.md): Run PDF Server on your own templates and iterate: hot reload, the tester UI, validation, and shipping your own image.
- [Quickstart](https://pdf.c0va23.dev/md/getting-started/quickstart.md): Render your first PDF in a minute using the published PDF Server image.
- [Template author workflow](https://pdf.c0va23.dev/md/getting-started/authoring-workflow.md): The day-to-day development cycle for building your own PDF service on top of PDF Server.
- [Template reload modes](https://pdf.c0va23.dev/md/getting-started/reload-modes.md): How the server picks up template changes after startup: the none, always, and watch reload modes, and which to run when.
- [Build your image](https://pdf.c0va23.dev/md/getting-started/build-your-image.md): Package your templates into a self-contained image on top of the PDF Server base image.
- [Tester UI](https://pdf.c0va23.dev/md/guides/tester-ui.md): The interactive UI for previewing template renders.
- [Operations](https://pdf.c0va23.dev/md/operations/index.md): Deploy, size, and observe PDF Server in production: image and factory choice, non-root, pool and timeout sizing, logs, traces, and health.
- [Deployment](https://pdf.c0va23.dev/md/operations/deployment.md): Images and factory modes for running PDF Server in production.
- [Tuning](https://pdf.c0va23.dev/md/operations/tuning.md): Sizing the browser pool, timeouts, and concurrency.
- [Observability](https://pdf.c0va23.dev/md/operations/observability.md): Tracing, logging, and status for running PDF Server.
- [Security model](https://pdf.c0va23.dev/md/operations/security-model.md): Trust boundaries, threat model, and the responsibilities the design places on operators.
- [Hardening checklist](https://pdf.c0va23.dev/md/operations/hardening-checklist.md): The operator controls that make PDF Server safe to run.
- [Possible security issues](https://pdf.c0va23.dev/md/operations/security-issues-possible.md): Suspected issues needing further verification, with likely impact and mitigation.
- [Proved security issues](https://pdf.c0va23.dev/md/operations/security-issues-proved.md): Issues verified in the code, with severity, reachability by environment, and remediation.
- [Reference](https://pdf.c0va23.dev/md/reference/index.md): The exact contracts: every HTTP route, every CLI flag and env var, the OpenAPI spec, and the status/metadata endpoints.
- [OpenAPI / Swagger](https://pdf.c0va23.dev/md/reference/api.md): The generated API specification and how to view it.
- [CLI & configuration](https://pdf.c0va23.dev/md/reference/cli.md): Every command-line flag and environment variable.
- [HTTP endpoints](https://pdf.c0va23.dev/md/reference/endpoints.md): Every route the server exposes: methods, bodies, responses, and status codes.
- [Status & metadata](https://pdf.c0va23.dev/md/reference/status-metadata.md): The /_status and /_metadata endpoints for health and observability.
- [Server development](https://pdf.c0va23.dev/md/development/index.md): Modify or extend the Go server itself: the render path through every layer, the browser pool, the store, the callback server, and extension points.
- [How rendering works](https://pdf.c0va23.dev/md/getting-started/how-rendering-works.md): The full journey of a render request — validation, HTML rendering, the browser pool, compositions, lifecycle timing, and how the page reaches (and re-fetches) its assets.
- [Architecture](https://pdf.c0va23.dev/md/development/architecture.md): The internal architecture for developers extending PDF Server.
- [Codebase map](https://pdf.c0va23.dev/md/development/codebase-map.md): Package-by-package orientation for navigating the source.
- [Render pipeline](https://pdf.c0va23.dev/md/development/render-pipeline.md): How a render request flows from HTTP handler to PDF bytes.
- [CDP browser pool](https://pdf.c0va23.dev/md/development/cdp-browser-pool.md): How browsers are pooled, created, validated, and torn down.
- [Template store & hot reload](https://pdf.c0va23.dev/md/development/template-store-hot-reload.md): How templates are loaded, stored, and reloaded, and how compositions and remote templates fit in.
- [Internal callback server](https://pdf.c0va23.dev/md/development/internal-callback-server.md): The loopback-only server that delivers HTML to the browser and receives readiness callbacks.
- [Build, test & CI](https://pdf.c0va23.dev/md/development/build-test-ci.md): The Makefile, code generation, tests, and the CI/build systems.
- [Commit & changelog conventions](https://pdf.c0va23.dev/md/development/commit-and-changelog.md): How commit subjects, the Changelog: trailer, and the generated CHANGELOG.md fit together.
- [Extension points](https://pdf.c0va23.dev/md/development/extending.md): How to add a provider, a template engine, a helper, a loader, or a factory mode.
