Generate professional print proofs (PDF) and interactive web test pages for your fonts — without writing code or installing Python. You drop your fonts in a folder, answer a few questions, and Claude Code does the rest. Everything technical runs inside a container you never have to look into.
- Print proofs — clean vector PDFs at your chosen page size: type waterfalls, full character sets, spacing and kerning tests, OpenType feature showcases (small caps, oldstyle figures, ligatures…), language specimens, and variable-axis ramps when your font has them. Text is shaped by the same engine browsers use, so complex scripts and OpenType features render the way they will in the world.
- Web test pages — self-contained pages you open in a browser, with sliders and toggles to poke at your font: size, variable axes, feature on/off switches, kerning comparison, light/dark mode, and editable sample text.
- Docker — the container app that runs the engine. Windows / Mac: install Docker Desktop and open it once so it's running. Linux: install Docker Engine.
- Claude Code — the AI assistant this template is built around.
No Python, no package managers, no terminals full of red text.
-
Get the files onto your computer: click Use this template on GitHub, or use the green Code button → Download ZIP (no git needed). Unzip and open the folder.
-
Drop your font files into the
fonts/folder —.otf,.ttf,.ttc,.woff,.woff2, variable and color fonts all work. -
Open Claude Code in the project folder and type
/init-font. The first time, it builds the engine for you (a few minutes — it downloads its own rendering browser), then reads your fonts and asks a few questions about the proof you want — page size, colors, which sections. Defaults are always offered; you can just keep saying yes. -
Ask for what you want, in plain words:
"Generate my proof" → a PDF appears in
output/"Make me a web test page" → a page appears in
web-tests/
To re-do anything, just ask. Added new fonts? Run /init-font again.
Prefer the terminal? You can build the engine yourself first with docker compose build, then run /init-font — but you don't have to.
| Folder | What it's for |
|---|---|
fonts/ |
Put your font files here. Never committed, never shared. |
output/ |
Finished PDF proofs appear here. |
web-tests/ |
Generated browser test pages appear here. |
Each web test page is self-contained — the font is embedded in the file — so the easiest way to see one is to open it in the Claude app preview. You can also just double-click the .html in web-tests/ to open it in your browser.
If you ever need to serve the folder instead (for example to test across devices), run:
docker compose run --rm -p 8765:8765 proofer python -m http.server 8765
→ http://localhost:8765/web-tests/ (stop it with Ctrl-C when you're done)
/init-font inspects your fonts with professional font tooling and writes everything it learns — metrics, character coverage, language support, OpenType features, variable axes — into a context file Claude reads. From then on, three specialists do the work: a typographer decides what the proof should show (specimen texts, size ramps, kerning strings), a font engineer runs the rendering pipeline that turns those decisions into a PDF, and a web engineer builds the browser test pages. You only ever talk to Claude in plain language.
"Docker doesn't seem to be running" — open the Docker Desktop app and wait for it to say it's running, then try again. (Linux: sudo systemctl start docker.)
"docker: command not found" / "not recognized" — Docker Desktop installs the command-line tools for you, but a terminal opened before you installed it won't see them. Open a new terminal and try again. (Linux: if you get 'compose' is not a docker command, install the docker-compose-plugin package.)
The build fails with "certificate" or "SSL" errors — your antivirus or company network inspects internet traffic, and the engine doesn't trust it yet. Easiest fix: tell Claude Code "the build failed with a certificate error — please fix it". It can detect the program responsible, export its certificate to a file called extra-ca.crt in the project folder, and rebuild — that file is all the engine needs, and it never leaves your machine.
"No fonts found" — check your files are directly inside fonts/ (subfolders are fine) and end in .otf, .ttf, .ttc, .woff, or .woff2.
The first build is slow or the download is big — normal. The engine includes its own rendering browser (~1 GB once). It only happens again if the engine's ingredients change.
On Linux: generated files are owned by root — run commands with your user mapped: export HOST_UID=$(id -u) HOST_GID=$(id -g) before docker compose ....
Anything else — ask Claude Code. It can read the error and usually fix it. The engine self-test is: docker compose run --rm proofer python scripts/check_setup.py
This template's code is released under the MIT License.
Your fonts are not covered by that license. Anything you place in fonts/ remains entirely yours, under its own license or EULA. Fonts are excluded from git, are never uploaded anywhere, and are never redistributed by this project.
Found a bug or want to add a proof section? See CONTRIBUTING.md (that one's written for developers).