The full tour

Everything Vaelora does.

A walk through the whole app, from first keystroke to finished PDF.

The editor

Write on the left. Watch pages on the right.

One window, three panes: the Markdown source, a live paginated preview, and the conversion inspector. Or go full Source or full Preview — one click in the toolbar.

The source reads like a document rather than a config file: headings are set as headings, and the markers hide until your caret arrives to need them. A formatting bar handles the parts nobody enjoys typing, and find & replace works in the source — while find in the preview flares each match where it sits on the page.

Vaelora's split view: Markdown source beside a live paginated preview, with the conversion inspector on the right
Markdown, all of it

Your syntax already works.

CommonMark and GitHub-flavored Markdown, rendered by Apple's own engine — exactly the dialect you already write.

  • Tables, task lists, footnotes — with strikethrough, autolinks, and smart typography.
  • Callouts, with your own title> [!TIP] Read this first. Seven kinds: note, info, tip, important, warning, caution and danger.
  • Mathematics and coloured code$$\pi r^2$$ set as real type, and 36 languages coloured in a fenced block.
  • Emoji shortcodes:seedling: → 🌱, plus <mark>, sub~script~ and super^script^.
  • Fenced divs::: aside blocks give your CSS real styling hooks.
  • Images, sized and placed{width=40% .right} beside a picture is all it takes, in the preview and the PDF alike.
Trail guide document showing tips, warnings, task lists and tables rendered from Markdown
Front matter

Metadata in. Title page out.

Open your file with a YAML block and Vaelora sets a proper title block — title, subtitle, author, date. Add your own fields, like version: or status:, and they print as labelled rows. Every field doubles as a {token} for headers and footers.

YAML front matter in the source pane beside the typeset title block it produces
Preview showing a clean page break: the page ends with a footer page number, and footnotes settle on the final page
Pagination

Page breaks with judgment.

The preview shows real pages because Vaelora computes real pages — the same ones your PDF gets.

  • Headings stay with their text — nothing strands at the bottom of a page.
  • Widow & orphan control — paragraphs split at line boundaries, never mid-thought.
  • Your CSS gets a votebreak-before, break-after, and break-avoid are honored, so a style can force chapters onto fresh pages.
  • Tables that keep their heads — a table running past a page foot repeats its header row on every page it continues onto, banding and all.
  • Code stays whole — a fenced block moves to the next page rather than being cut in half.
  • Or no pages at all — continuous length sets the document as one tall sheet, same width and style, for reading on screen.
  • Fast at any size — pagination is virtualized, so hundred-page documents stay smooth.
The inspector's Page tab: page setup, header and footer slots with tokens, and page numbering controls
Headers, footers & numbering

Page furniture, minus the fuss.

Three slots each for header and footer, filled with tokens — {page}, {total}, {title}, {date}, and any front-matter field you've written, like {version} or {status}.

  • Styled by the same CSS as the document, so they always match.
  • Numbering that understands documents — start on the first page, after the title page, after the contents, or any page you choose.
  • Arabic or Roman numeral formats, with a custom first number.
  • Margins in your units — cm or inches, following your system setting.
Styles

One document, any look.

Eleven built-in styles, and every one of them is plain CSS you can read. Duplicate one, edit it live in the Style Editor against a specimen or your own document, and share it as a portable .mdpdfstyle file.

The Field Notes document in the Default style
Default
The same document in the Compact style, fitting more per page
Compact
The same document in the serif Manuscript style with centered headings
Manuscript
The Technical Report style generates a dedicated cover page
Technical Report

Plus Academic Paper, Agreement, Editorial, Journal Article, Letter, Resume, and Thesis — see how styles work.

The Style Editor: commented CSS on the left, a live preview against the open document on the right
The exported PDF open in Apple Preview, with a nested table-of-contents sidebar
The export

⌘E, and it's a real PDF.

Vaelora measures the whole document first, then writes the PDF — so everything lands exactly where the preview said it would.

  • Navigable outline — every heading in the PDF sidebar, nested correctly.
  • A table of contents that never lies — page numbers come from measured geometry, and every entry is a clickable link.
  • Links that work — footnotes, URLs, and cross-references all survive the trip.
  • No print dialog — one keystroke, one save panel, done.
Comments

Say something about the document, in the document.

Point at a paragraph in the preview and leave a note. It is written into your Markdown as {>> RS: is 12 months right? <<} and saved straight away — so the assistant working on the file can read it, act on it, and hand the document back with the answer.

In the margin

Point, and write.

  • Add where you are looking — move into the margin beside a paragraph and an offer appears; click it and the note is attached to that block.
  • A colour each — every person’s marks are their own colour, so a page with two reviewers says so without opening anything.
  • Answer a note — a reply is written next to the one it answers, so the exchange reads in order in the file.
  • Resolving deletes — no archive, no resolved state. The document is the record.
In the source

Plain text, all the way down.

  • Written at the caret — ⌥⌘M in the editor drops a note where you are, ready to type into.
  • Markers hide — the syntax conceals like **bold** does, leaving the words shaded in their author’s colour until your caret lands on the line.
  • Samples stay samples — a marker inside code is left exactly as written, because it is being shown rather than used.
  • Nothing proprietary — it is CriticMarkup in a text file. Any editor can read it, and so can any model.

And none of it prints. A comment renders to nothing in the PDF, the CLI and the MCP server alike — not a setting you have to remember, but a property of the exporter, which has no way to put one on a page.

Review

Propose a change without making it.

A comment asks a question. A tracked change answers it with the words themselves — {--12--}{++18++} in the file, and the two readings of the document one keystroke apart.

One at a time

Click the mark, take the change.

  • Accept or reject just that one — click a coloured mark in the preview and a small panel says who proposed it and what it would do. Nothing else in the document moves.
  • Or say something instead — the same panel offers Comment, which leaves a note on that block and changes not a character. Not every change has to be decided today.
  • ⌘Z puts it back — taking a change is an ordinary edit, in the ordinary undo stack.
  • The whole document, three ways — show every change marked up, render as if all were accepted, or as if none were. The file is untouched until you press a button.
Why it is in the file

A markup a model can read.

  • CriticMarkup, in plain text — insertions, deletions, substitutions and highlights. Any editor opens it; any diff reads it; any assistant can propose one.
  • Signed if you like{++RS: not less than thirty days++}. The initials come off with the markers, so accepting puts the words in and leaves the signature out.
  • Exact, not approximate — a change knows which characters of your file it came from, so taking one takes that one, even when two propose the very same words.
  • Samples stay samples — markers inside a code block are shown, never applied.
And everything else

The small things add up.

Mathematics

Write $$\pi r^2$$ and it sets as real type — scaling with the document, selectable in the PDF, and printed in its own fonts rather than pasted in as a picture. A lone $ is still a currency symbol.

Coloured code

A fenced block that names a language is coloured, in a palette restrained enough for a printed report and legible in black and white. Nothing is guessed: an unlabelled block is left exactly as written.

PDFs you can search

Every word in the export is a word a reader can find with ⌘F and paste back out — including the ones a typeface would rather set as a single ligature.

Presets

Save a style, page setup, and header/footer as a named preset. Apply it to any document with one click.

Multiple windows

Every document opens in its own window with its own settings, zoom, and view mode.

Table of contents

Generate a TOC with live page numbers — it skips the unnumbered front matter and only lists what follows it.

Tables by shape

Add a row or a column, set a column's alignment, and Vaelora rewrites the Markdown — no counting pipes, no realigning dashes.

Per-document cleanup

Shift heading levels, strip emoji, flatten heading formatting, or drop horizontal rules — without touching your source.

Preview zoom

The preview fits the width of your window by default, or shows a whole page at once with ⌘8 when you want to see where the breaks land. Magnify from 35% to 300% with ⌘+ and ⌘−. A word count keeps you honest.

Page zoom

Set the document itself larger or smaller — 50% to 150% — and everything scales together, running headers included. The paper and margins stay put, and the PDF gets exactly what you see.

Contents you choose

Pick which heading levels reach the contents page and which reach the PDF outline — separately, because a sidebar and a printed TOC want different depths.

Updates in place

Vaelora says when a new version is out and installs it itself. No disk image to drag, no reinstall.

Changed on disk

Edit the same file in another app and Vaelora notices, offering you the new version rather than quietly holding a stale one.

App-wide defaults

Set your preferred style, page setup, and content options once in Settings — every new document starts there.

Light & dark

The app follows your system appearance. Your document stays a document — white pages, either way.

Truly native

SwiftUI, signed and notarized by Apple. No Electron, no bundled browser, no runtime dependencies.

Private by design

Everything happens on your Mac. No accounts, no telemetry, nothing leaves your machine.

Comment author

Notes are signed with your initials, taken from your account name — or anything you type in Settings, if “Legal” suits the document better than “RS”.

Agent-ready

A bundled MCP server and command-line tool run the same engine headless — your AI can ship the PDF.

Try it

See it with your own Markdown.

Drop in the messiest document you have. That's the demo that counts.

Free download · Requires macOS 15 Sequoia or later · Apple silicon & Intel