What it is
Zen is a self-hosted note-taking application that ships as a single Go binary or as a Docker Compose stack. Notes are written and stored as standard Markdown, with the content and its metadata kept in a local SQLite database. The project sits in the self-hosted productivity and knowledge-management ecosystem, alongside other personal note servers, and it presents itself as clean, distraction-free, and lightweight by design.
The concrete problem it solves is ownership and portability of notes. Instead of locking text inside a proprietary cloud service, Zen keeps everything on hardware the operator controls, in Markdown that can be read without the application. Organizing happens through flexible tags rather than rigid folders, so a note can belong to several contexts at once. Full-text search with BM25 ranking makes a large collection navigable, and import and export paths preserve the ability to move data in and out rather than accumulating a private archive that cannot leave.
Key capabilities
- Runs as a single Go binary or through Docker Compose, with a deliberately small dependency footprint and low resource usage.
- Stores notes as standard Markdown files in a local SQLite database, so the underlying content stays readable outside the app.
- Supports Markdown features including tables, code blocks, task lists, and highlights.
- Provides full-text search with BM25 ranking across the note collection.
- Organizes notes with flexible tags instead of rigid folders, with templates and pinned notes for repeated structures.
- Includes archive and soft delete for individual notes, plus bulk archive and bulk delete, so nothing is removed irreversibly at the first step.
- Supports internal note links with a side panel preview, and offers experimental Canvas spatial organization stored as JSON Canvas, semantic search and similar-image lookup through Zen Intelligence, and an MCP interface for searching, listing, and reading notes.
Who uses it and how
- Self-hosters who want notes on their own server and reach them through a hosted-style web interface, using the public live demo to evaluate it first.
- Writers who prefer Markdown as the storage format and want task lists, tables, and code blocks available without a separate editor.
- Operators who need automated backups and run the companion Zen Backup tool against the SQLite-backed store.
- People migrating from another note service, using Zen Import to bring existing content across.
- Tooling users who connect an MCP client so that notes can be searched, listed, and read programmatically.
Getting started
The README documents building from source with make build, and it lists a single Go binary or Docker Compose as the delivery options; a live demo is linked from the project homepage. Local development uses make dev for the default configuration, or make watch after installing air and esbuild for watch mode.
When to use it — and when not to
Zen is a reasonable fit when the goal is a lightweight, self-hosted Markdown store with search, tags, and export rather than a hosted subscription product. A self-hoster must operate the application itself, which means the SQLite database, the storage holding it, and any backup routine built around Zen Backup or an equivalent process. The README states this is a personal project built for the author's own use, and that pull requests and issues may not be actively reviewed or answered, so anyone depending on upstream fixes or a support relationship should weigh that before committing.