Introduction
Pamphlet compiles one Markdown file into one HTML file you can double-click open.
The output contains no <link>, no <script src>, no CDN reference. Diagrams were rendered to static SVG at compile time and inlined, fonts are subset data URIs, images are base64. Offline, over file://, copied around on a USB stick — the behaviour is identical.
Four promises
The fourth is a constraint on the first three: every interaction must have a form that works without scripting first, and scripting is layered on top.
When to use it
Good fit: a one-off proposal, a post-mortem, a weekly report, a client explainer — anything you want someone to just double-click, without asking them to install something or standing up a site.
Poor fit:
- A continuously updated multi-page site. One source file = one HTML file; there is no cross-page navigation or site-wide search. The site you are reading is built with Rspress, not with Pamphlet.
- Sending to someone to open on a phone. iOS blocks local HTML files; that is not something Pamphlet can fix. Workarounds in What the output is.
- A several-hundred-page book. One file means the whole thing loads at once.
For how it differs from Pandoc and friends, see Comparisons.
Why not something that already exists
The field was surveyed: no existing tool does all four at once.
The closest is Quarto — embed-resources: true is already self-contained, .panel-tabset already gives tabs, mermaid-format: svg forces pre-rendered diagrams. It lost not on effort but on direction: Quarto speaks Pandoc Markdown, while Pamphlet's whole promise (a strict CommonMark superset, sources stay .md, they still read fine on GitHub) rests on CommonMark. It also ships a ~100MB binary aimed at the R / Python data science world.
The rest:
Next
Quick start — ten minutes to your own first output.