Convert Markdown to PDF. Offline.

Your files stay on your Mac.

Convertessa app window showing the format catalog and drop area
What it does

From plain text markup to PDF document

Convertessa runs each .md file through Pandoc and lays the result out as a paginated PDF — headings, lists, tables, footnotes, blockquotes and fenced code all intact, links still clickable. Page size, margins and typeface come from the layout, since Markdown carries none of them. Feed it one note or an entire documentation folder; everything is typeset on your Mac and nothing is uploaded.

Typesetting, not translating

Markdown has no pages until something makes them

Markdown was designed in 2004 to be readable as plain text first and marked-up text second. It describes structure — this is a heading, this is a list item, this is code — and says nothing whatsoever about a page. There is no paper size in a .md file, no margin, no typeface, no notion of where one page stops and the next begins. Converting to PDF is therefore not a translation between two ways of saying the same thing; it is a typesetting job, and the converter has to supply every decision the source never made.

Pandoc does the parsing. It builds a real document tree out of your Markdown, so headings become a genuine outline, pipe tables become tables, footnotes land at the bottom, inline links become clickable annotations, and fenced blocks keep their monospaced runs. Because it parses rather than pattern-matches, GitHub-flavoured extras such as task lists and strikethrough arrive as structure instead of stray punctuation.

Where people get caught out:

  • Relative image paths. ![](img/diagram.png) is resolved from the document's own folder. Convert a copy that has drifted away from its images and the picture is simply missing from the PDF.
  • Mermaid and PlantUML fences are code blocks, not diagrams. They typeset as the literal source text, because turning them into pictures is a different program's job.
  • A single newline is not a line break. Markdown joins consecutive lines into one paragraph, so addresses, poetry and CLI transcripts collapse unless separated by a blank line or ended with two trailing spaces.
  • Raw HTML sitting inside the Markdown is not rendered — it only carries meaning for an HTML writer, and a PDF writer drops it.
  • Glyph coverage. Emoji, CJK text and unusual symbols appear only if the typeface used for the PDF actually contains them. Otherwise you get blanks.

Two more facts fall straight out of the format. Plain Markdown has no page-break marker, so where pages divide is decided by the layout rather than by you. And a --- block at the very top of the file is YAML front matter: metadata that the parser consumes, not body text that gets printed.

How it works

Three steps. No upload required.

1

Keep the images alongside

Before converting, check that anything referenced by a relative path still sits where the Markdown expects it. Pandoc resolves image links from the document's own folder, and a missing target leaves a silent gap in the PDF.

2

Drop the files in

Drag one .md file or a whole docs directory onto the window. Each Markdown file becomes its own PDF — Convertessa converts them side by side rather than stitching the folder into a single document.

3

Choose PDF and convert

Pick PDF as the target and set the quality value, which governs how embedded raster images are compressed; text and rules are vector and unaffected by it. Document properties are cleared on the way out.

Format catalog

From everyday files to pro media.

Images, audio, video, documents, archives, eBooks and fonts — all converted natively, right on your Mac.

Conversion explorer

What do you want to convert?

Pick a format you have — see everything Convertessa can turn it into.

conversion combinations
I have a
can be converted to
From MP4

Features

Built for real work.

Batch conversion

Convert hundreds of files at once with per-type group defaults and individual overrides.

Modern image formats

First-class support for HEIC, AVIF and WebP — encode and decode, both ways. Read JPEG XL and a dozen more modern formats too.

Drag & drop

Drop files anywhere on the window. Native, instant, and exactly what you’d expect on a Mac.

Quality control

Dial in compression, resolution and bitrate. Keep originals pristine or shrink for sharing.

Collision-safe naming

Never overwrite a file by accident. Convertessa appends safe suffixes automatically.

Conversion history

Every job is logged locally. Re-run a previous conversion or revisit recent outputs in a click.

Archive the output

Bundle your converted files straight into a single ZIP, TAR or 7z — packaged and ready to share the moment a job finishes.

Convert from Finder

Right-click any file in Finder and choose Convert. A Quick Action handles it on the spot — no need to open the app first.

Compact mode

Shrink Convertessa to a tidy mini window that tucks into a corner — just a drop zone and a format picker for quick, one-off conversions.

Your files never leave your Mac.

No cloud. No account. No upload. Every conversion happens entirely on-device, using the power already in your Mac. What you convert is nobody’s business but yours.

On-device processing Zero telemetry No file uploads
For power users

There’s a command line, too.

Script conversions, wire them into your build, or batch a folder from the terminal. The same engine, no GUI required.

Read the full CLI documentation
zsh — convertessa
# Convert a single file
$ convertessa input.md --to pdf
photo.pdf · 1.2 MB · 0.4s
 
# Batch a whole folder
$ convertessa ./*.md --to pdf -o ~/Exports
14 files converted · 4.1s
Made to fit

And a compact mode.

Shrink Convertessa down to a small, focused window — drop, convert, done, with your recent conversions one click away.

Convertessa in compact mode — a small window with a drop area and recent conversions
Pricing

One price. Yours for good.

Lifetime license
$19
One-time payment
No subscription. No renewals. Ever.
Get the app
  • 1,000+ conversion combinations
  • Lifetime future updates
  • No account required
  • Unlimited devices

macOS 14+ · Apple Silicon & Intel

Changelog

What’s shipped so far.

New formats, new features, and fixes — every release, on the record.

FAQ

Good questions.

Convertessa is a native macOS app that converts your files between formats — images, audio, video, documents, archives and eBooks — entirely on your Mac. Drop a file in, choose an output, and it’s done. No uploads, no account, no subscription.
Convertessa is an orchestrator. Under the hood it relies on best-in-class open-source engines — FFmpeg for audio & video, Pandoc for documents, libvips for images, LibreOffice for office formats, and Calibre for eBooks. It installs them for you with a click, then calls the right tool, or chain of tools, in the right order for whatever you’re converting. You get one clean native interface instead of a tangle of command-line flags. These binaries aren’t bundled with the app and are never installed without your approval — Convertessa simply calls them in a terminal session on your behalf.
Popular ones include JPEG, PNG, HEIC, WebP and AVIF; MP3, AAC, FLAC and WAV; MP4, MOV and MKV; PDF, DOCX and EPUB; ZIP, TAR and 7z — and many more. See exactly what converts to what in the conversion explorer →
Email us and we’ll add it in an upcoming release. Convertessa’s format coverage grows with what people actually need, so your request genuinely helps shape the app.
Your files? Never. Every conversion happens locally on your Mac. Your files are never uploaded, and nothing you convert is ever sent anywhere. Our Privacy Policy spells out exactly what limited data the app does store.
No analytics, no tracking, no telemetry. Your files and conversions stay entirely on your Mac — nothing you convert is ever sent anywhere. The app periodically checks for software updates in the background; like any web request, that check reveals only standard request metadata (your IP and app/OS version) to our update server — never your files, name, email, or license — and updates are always user-approved. Separately, on the website only, our purchase-confirmation page reports a completed sale to Google Ads so we can measure our own ad performance — it never runs while you’re browsing or converting, only after checkout. Our Privacy Policy spells out exactly what’s stored — and what isn’t.
Yes. Convertessa is a universal app and runs natively on Intel Macs. It requires macOS 14 or later.
Yes. It’s tuned for Apple Silicon (M-series) and runs natively — fast and energy-efficient. macOS 14 or later.
Yes — your license works on an unlimited number of your own Macs. Buy once and install it everywhere you work.
You get a genuinely useful, private, native Mac app for a single $19 payment — no subscription, ever. And your purchase directly supports a small independent developer and the app’s ongoing updates and new formats.
There’s no separate trial, but every purchase is backed by a 14-day money-back guarantee. If Convertessa isn’t right for you, contact your payment processor within 14 days to request a full refund — no questions asked. You can also email us and we’ll help route it.
Quite possibly — just email us. If you’re a student, run a non-profit, or have another good reason, reach out and we’ll sort you out.
Convertessa was built by Daler Azimov — a developer who needed a fast, private, native file converter for his own work, and decided to make the one he wished existed. Connect on LinkedIn →

Almost always a path problem. ![](assets/chart.png) is resolved relative to the Markdown file, so converting a copy stored elsewhere breaks the link and the image is quietly omitted. Convert the file where it lives:

convertessa ~/Notes/report.md --to pdf -o ~/Exports

Absolute paths, or images kept in the same folder as the document, are the reliable options.

No. A mermaid fence is a fenced code block like any other, and it typesets as the literal text you wrote — graph TD and all. Diagram rendering is a separate engine that runs before conversion, not part of Markdown itself. If you need the picture in the PDF, export the diagram to an image first and reference that image from the Markdown.

Not from plain Markdown. The syntax has no page-break marker, because Markdown predates any notion of pagination — where one page ends is worked out by the layout as it flows your text. If a section must start fresh, structure the document so that it begins with a top-level heading and let the typesetting do the rest.

Yes. Pandoc reads pipe tables and grid tables and emits real tables in the PDF, with header rows kept as header rows. The practical limit is width: a table of a dozen columns full of long strings still has to fit inside the text block, and wide content gets squeezed. Fewer, shorter columns typeset far better on a portrait page.

The --- block is metadata, not content, so the parser consumes it instead of printing it as literal text in your document. Fields such as title and author are read as document metadata. Convertessa clears document properties on output, so what you put there does not travel onward with the finished PDF file.

That is font coverage, not a conversion failure. A PDF embeds the glyphs it draws, and a typeface with no character for an emoji or a CJK ideograph cannot draw one — you get a blank or a placeholder box. Latin text, punctuation and common symbols are safe. Anything outside the layout font's repertoire needs a font that covers that script.

No — the mapping is one input file, one output file. convertessa ./docs/*.md --to pdf -o ~/Exports produces a PDF per Markdown file, keeping the base names. Merging is a different operation altogether, so if you want one continuous document, concatenate the Markdown into a single .md first and convert that instead.

Code blocks are set verbatim, which is the whole point of them: whitespace and line breaks are preserved exactly. A line longer than the text block cannot be rewrapped without changing what the code says, so very long lines can run toward the margin. Breaking them in the source — at a pipe, a comma, or with a shell continuation — is the fix that keeps the PDF readable.

We’d love to hear from you. Email us and you’ll get a reply from a real person — the one who made the app.