Publish Markdown incident reports, ADRs, RFCs and runbooks as web pages, with team spaces.
Booklet
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Publish Markdown incident reports, ADRs, RFCs and runbooks as web pages, with team spaces.**
You write Markdown, and Booklet gives you a page with a link. The page is typeset, has a table of contents when it's long enough to need one, and opens for anyone you send it to.
It's built for the documents engineering teams pass around. Put type: incident (or adr, rfc, runbook, postmortem, release-notes) in the frontmatter and the page shows status, severity, date and owners in a strip above the title. [[ADR-012 Queue retries]] in an incident report links to that ADR, and the ADR lists the incident under "Referenced by". A team space keeps a team's documents together, grouped by type, and a page in one can be restricted to its members.
There are five ways to publish, and all of them produce the same page: the web editor, the REST API, the booklet-cli npm package, a GitHub Action, and an MCP server for Claude and other MCP clients.
**Live:** booklet.ashwinsathian.com · **API docs:** /docs/reference/api · **MCP setup:** /docs/guides/mcp
---
Quick start
You get back the page's URL. The editor works without an account, up to 10 pages a month, each served for 90 days. An account (free, and there is no paid plan) removes both limits. The CLI needs an API key, and a key needs an account.
---
Features
- **Editor**: live preview, drafts saved in the browser and synced to your account, import from a file or a GitHub URL
- **Document types**: frontmatter type, status, severity, date, owners and supersedes, shown in a header strip
- **Links between pages**: [[Title]] resolves to a published page in the same team space, or among your own pages
- **Team spaces**: /t/ lists a team's pages by type, with an ADR log and an Atom feed of its public pages
- **Visibility**: unlisted (the default, not indexed), public, or team; a password on top if you want one
- **Published pages**: table of contents, reading time, dark and light themes, five document themes, embeds at /p/:id/embed
- **Math and diagrams**: KaTeX ($...$, $$...$$), Mermaid and Graphviz in fenced code blocks
- **Export**: Markdown, self-contained HTML with diagrams and math drawn in, and Print to PDF
- **Version history**: 50 versions per page, a line diff between any two, restore as a new version
- **Analytics**: per-page views, how many readers reached 50% and 100%, referrers
- **Custom URLs**: an address such as /p/my-release-notes
- **Webhooks**: page.published and page.updated, signed, with a log of the last 50 deliveries
- **REST API**: publish, update, list and delete pages; OpenAPI 3.1 at /api/v1/openapi.json
- **CLI**: booklet-cli on npm, with --json output and exit codes for scripts
- **GitHub Action**: AshwinSathian/publish-to-booklet
- **MCP server**: seven tools and six prompts, with OAuth sign-in or an API key
- **Accounts**: email and password, passkeys, and GitHub or Google sign-in where the host has configured them
---
CLI
bash
curl -X POST https://booklet-api.ashwinsathian.com/api/v1/publish \
-H "Authorization: Bearer bklt_..." \
-H "Content-Type: application/json" \
-d '{"raw": "# Hello\n\nThis is my page."}'
bash
cd mcp-server && npm run dev
bash
npm install
npm run dev # Next.js dev server at http://localhost:3000