The report that broke me
Every Friday, I write a project status report. It has a table, some bullet points, a diagram, and a cover page. Pretty standard.
The writing takes 15 minutes. The formatting takes 30.
I’d paste my notes into Google Docs, fight with the table borders, nudge the logo into place, realize the page break moved, fix the heading sizes, export to PDF, notice the footer is wrong, go back, fix it, export again. Every. Single. Week.
One Friday I caught myself manually adjusting cell padding for the third time and thought: this is absurd. I write the content in plain text anyway. Why can’t I just… keep it in plain text and get a PDF that looks good?
What I wanted
The requirements were simple:
-
Write in Markdown. I already think in Markdown. Every spec, every README, every set of notes — it’s all Markdown.
-
See what it looks like. Not after export. While I’m writing. Side by side.
-
Pick a template once. Corporate branding, cover page, headers, footers — set it and forget it.
-
Export to PDF. One click. No reformatting, no surprises.
-
Keep everything local. I don’t want my internal documents on someone else’s server.
That’s it. I didn’t need collaboration. I didn’t need comments. I didn’t need a subscription to generate a PDF from my own text.
I looked around. Pandoc can do Markdown to PDF, but you need LaTeX installed, the output looks academic, and there’s no preview. Obsidian is great for notes but it’s not a document tool — you can’t set up cover pages or branded headers. Typora is close but no templates, no diagrams in PDFs, and development has stalled.
Nothing did what I wanted. So I built it.
What PaperQuire does
PaperQuire is a desktop app. You open it, you write Markdown, you see a live preview, you click Export. That’s the workflow.
Here’s what makes it different from “just another Markdown editor”:
Live split-pane preview. The right side shows your formatted document in real time — exactly what your PDF will look like. Tables render. Code blocks highlight. Mermaid diagrams draw. Obsidian callouts style. What you see is what you export.
Templates that actually work. Open Document Setup, pick “Executive Report” or “Technical Design” or “Minimal Clean.” The template handles cover pages, headers, footers, page numbering, branding colors, typography. Your content doesn’t change. The presentation does.
Mermaid diagrams. Write a mermaid code block, see a flowchart or sequence diagram in the preview. It embeds in your PDF. No screenshots, no external tools, no “paste this image here.”
Export to everything. PDF, Word, HTML, Confluence. Same document, every format. The command palette lets you do it all from the keyboard.
Plugins. Auto-linking URLs, emoji shortcodes, word count, Obsidian-style callouts. Install what you want, ignore what you don’t.
CLI. paperquire report.md gives you report.pdf. paperquire batch ./docs renders an entire directory. Works in scripts, CI/CD pipelines, and cron jobs.
100% offline. PaperQuire uses Chromium’s built-in print engine. No server, no account, no upload. Your documents never leave your machine.
The Friday report, after
Now my Friday looks like this:
- Open PaperQuire. My template is already set — “Executive Report” with company branding.
- Write the report in Markdown. Tables in pipe syntax, bullets with dashes, a Mermaid diagram for the architecture overview.
- Watch the preview update as I type. If something looks off, I fix the Markdown.
- Click Export → PDF.
15 minutes, start to finish. The formatting is handled. The cover page is there. The footer has the page numbers. I never touch a style menu.
That 30 minutes of formatting every week? Gone. Over a year, that’s 26 hours I got back. And every report looks consistent — not “close enough” but identical, because it’s the same template every time.
The part I didn’t expect
I built PaperQuire for myself. But the CLI changed things.
Once you can render Markdown to PDF from the terminal, you can automate it. We added a GitHub Action — now our docs repo generates fresh PDFs on every push. No one has to remember to export. No one sends a stale version. The CI pipeline handles it.
- uses: paperquire/render-action@v1
with:
files: 'docs/*.md'
template: executive-report
Then came the MCP server. Claude, ChatGPT, Copilot — they can call PaperQuire directly. The AI writes the Markdown, PaperQuire renders the PDF. No copy-paste, no manual formatting step.
The tool I built to fix my Friday report turned into something bigger. But the core is still the same: write in Markdown, get a professional document. That’s it.
Try it
PaperQuire is free. It runs on macOS, Windows, and Linux.
Or install via Homebrew:
brew install --cask paperquire/paperquire/paperquire
If you’ve ever spent more time formatting a document than writing it, give it a shot.