Verso — Markdown Viewer & Editor
Desktop Markdown viewer and editor that opens a .md file in under a second and renders it like a finished document. Live preview in the Typora style — the raw syntax appears only on the line your caret touches. Real tables, KaTeX formulas, Mermaid diagrams, section folding, outline, tabs, folder tree. Opens files other editors refuse: windows-1251, KOI8-R, DOS 866 and other legacy encodings, saved back byte for byte. Export to standalone HTML or print to PDF. Windows, macOS, Linux. Open Source MIT.
Verso: Markdown That Looks Like a Document
Markdown won because it is plain text: it survives every editor, every version control system and every decade. But most of the time you are not writing it — you are reading it. A README someone sent you. A specification. Notes from last year. And plain text is exactly what you get: hashes in front of headings, asterisks around words, tables that are rows of pipe characters you have to decode in your head.
The usual answers are all compromises. A code editor shows you the source and asks you to imagine the document. A browser preview loses your place every time you touch it. Note applications want your files inside their vault first.
The Challenge
Double-clicking a .md file should show you a document, not source code — instantly, without importing it anywhere, and without the application ever rewriting a byte you did not type. Verso is built for that first, and edits second.
Reading first
Verso is viewer-first. Associate .md with it, double-click, and the document
is on screen in well under a second — headings set in real type, tables drawn as
tables, code in panels, formulas and diagrams rendered. A freshly opened file
stays a clean reading page: nothing reveals its markup until you actually start
interacting with it.
When you do start editing, it works the way Typora taught everyone to expect. The raw syntax appears only on the line your caret touches, and folds away again when you leave. There is no second pane, no preview to keep in sync, and no moment where you are looking at a copy of your document instead of the document.
What it does
- Live preview in place. Markup becomes formatting as you type; the line
- Real tables. Alignment, inline formatting inside cells, click a cell to
- Formulas and diagrams.
$E = mc^2$through KaTeX,`mermaidfences
- Everything a working document needs. Tabs, a folder tree, an outline that
- Export and print. One standalone HTML file that carries its own styles,
- Themes are one CSS file. Override design tokens and every part of the
It opens the files other editors refuse
Almost everything written in Russian before UTF-8 won is in windows-1251, DOS 866 or KOI8 — and most modern editors either refuse it or open it as mojibake. Verso detects the encoding, reads the file correctly, and writes it back in the same encoding, byte for byte. If you then type a character the old encoding cannot hold, it refuses the save and tells you which character, instead of quietly replacing it.
Your file is the only source of truth
Verso never keeps a document model of its own. The file's text is the document; rendering is decoration drawn over it. That is not an implementation detail — it is what the following guarantees are made of:
- Open an untouched file and save it: the bytes are identical. Encoding,
- Saves are atomic. What is on disk is the old version or the new one,
- Unsaved text is mirrored to a draft, so a crash or a power cut costs
- A file changed by another program reloads when your tab is clean and asks
- Raw HTML in a document is displayed as text, never executed — in the
Built to stay out of the way
| | | | --- | --- | | Cold start | Under a second to a rendered document | | Installer | 3.8 MB | | Memory | About 40 MB | | Engine | Tauri 2 and the system webview — no bundled browser |
A large file does not stop it: a 2.7 MB, 300,000-word archive opens and scrolls, and says plainly when a document is big enough that it stops rendering tables and formulas rather than making typing lag.
Under the hood
| Layer | Stack | | --- | --- | | Shell | Tauri 2 (Rust) — file associations, single instance, filesystem, watching | | UI | Svelte 5 + Vite + TypeScript | | Editor | CodeMirror 6 with a custom live-preview decoration layer |
The rendering, the export and the search all read the same syntax tree, so a document looks the same on screen, in the file you export and on the page you print. There is no second Markdown implementation anywhere in it.
Who it is for
- Anyone who is sent
.mdfiles — READMEs, specifications, AI-generated
- Developers who want their documentation to look like documentation
- Anyone with an archive of old notes in a legacy encoding that modern
Status
Verso is 0.1 and not yet released. It is built and used on Windows daily; macOS and Linux builds are wired into CI but have not been hand-tested yet. Open source under the MIT licence — the source, the design documents and the decision records are all in the repository.
🔗 Resources
GitHub Repository
Explore the complete source code, documentation, and latest releases on GitHub.
View on GitHub