ZE

Zettlr

Markdown editor for writers, researchers, and Zettelkasten users

Notes & Knowledge Base ★ 13.6k stars Easy setup GPL-3.0

Zettlr is a desktop Markdown editor designed for academic writing and Zettelkasten note management, with citation support and internal linking. While desktop-first, it works on plain Markdown folders that can sync between machines.

Key features

  • Zettelkasten linking
  • Citation manager support
  • Multi-format export
  • Folder-based projects

Pros & cons

Strengths

  • Strong academic features
  • Plain Markdown files

Trade-offs

  • Desktop only
  • No native sync server

Zettlr replaces

Last reviewed Aug 26, 2026 · 826 words

Zettlr never touches your server. It is a desktop Markdown editor for Windows, macOS and Linux that opens a folder of plain .md files, and the self-hosted part of the arrangement is the folder, not the app. Once you accept that, the decision is simple: you want an editor built for citations and Zettelkasten-style notes badly enough to give up a web UI and a phone app, or you do not. For academics and long-form writers the answer is usually yes. For everyone else, Joplin or Trilium will serve better, and the notes category is where to look.

Where it sits: a folder, a sync tool, and an editor

The stack is three parts. A directory of Markdown files lives on each machine you write from. Syncthing or a Nextcloud client keeps those directories identical. Zettlr opens the directory as a workspace and gives you a file tree, a tag cloud and full-text search across it. There is no daemon, no database and no account, which is why the 256 MB memory figure in the catalogue describes the editor process on your laptop rather than anything on a server.

That design has a consequence people miss: every other Markdown tool can read the same folder at the same time. I keep one workspace open in Zettlr on the desktop and read the identical files through a browser-based editor on the server when I am away. Nothing is locked in, and if Zettlr disappeared tomorrow the notes would not notice.

Citations are the reason to choose it over Obsidian

Most Markdown editors bolt citations on through a plugin. Zettlr treats them as a first-class feature: point it at a CSL JSON or BibTeX file exported from Zotero (the Better BibTeX add-on keeps that file updated automatically), type [@smith2019] in a note, and the editor autocompletes keys and renders the citation inline. Export goes through a bundled copy of Pandoc, so a note becomes a DOCX with a properly formatted bibliography in one click, and PDF works once a LaTeX distribution is installed. If your writing ends in a journal submission rather than a wiki page, this workflow alone justifies picking it over Obsidian.

The Zettelkasten features survive without Zettlr

Zettlr generates a timestamp-style ID for each note, understands [[wikilinks]] between notes, and shows a related-files panel built from those links and shared tags. What matters for a self-hoster is that all of it is stored as ordinary text inside the files. The ID is a string in the note, the link is a string in the note, and grep finds both. Compare that with tools that keep the link graph in a private database: here your knowledge base is portable by construction, which is the whole argument for notes you own.

What it is not

There is no mobile app and no browser version, and that is by design rather than a roadmap gap, so the catalogue's "desktop only" is a permanent property. There is no sync server either; if two machines edit the same file while offline, your sync tool produces a conflict copy and you merge by hand. It is also not a wiki: Zettlr has no publishing layer, so pushing notes to the web means a separate static generator such as Quartz reading the same folder.

Two practical details. Zettlr is an Electron app, so expect roughly 300 to 500 MB of memory in use with a large workspace open; the catalogue minimum of 256 MB is a floor, not a typical figure. And Zettlr drops small .ztr-directory metadata files into folders to remember sort order and project settings, which you may want in your sync ignore list if each machine should keep its own preferences.

Syncing it without a server

Syncthing between machines is the setup that costs nothing and needs no server, and it handles a few thousand small text files without effort. Enable file versioning on at least one node so a bad merge is recoverable. If you want a copy on a server as well, run Syncthing there too and point a nightly backup at it; the whole archive is text, so a year of notes compresses to a few megabytes. Avoid syncing through cloud clients with placeholder files enabled, which can present Zettlr with stubs it cannot read.

What I'd do

If you write with citations, install Zettlr from zettlr.com, keep Zotero plus Better BibTeX feeding a CSL JSON file, and put the notes folder under Syncthing with versioning on. If you mainly need quick capture from a phone, skip it and pick a server-backed notes app instead. Either way keep the folder plain: the value of Zettlr is that it needs nothing, and the moment you depend on a feature only it can read, you have lost that.

Compare Zettlr

29 head-to-head comparisons.

Similar notes & knowledge base apps