unsubbed.co

Zen Notes

Zen Notes handles minimal note-taking app storing Markdown notes in local SQLite database. Features instant search as a self-hosted solution.

Honest review of a Go-powered, Markdown-native notes app. No cloud dependency, no subscription, no frills.

TL;DR

  • What it is: A self-hosted notes app — single Go binary, notes stored as Markdown in a local SQLite database, BM25 full-text search [2][3].
  • Who it’s for: Solo developers, privacy-conscious founders, and knowledge workers who want a fast, private Notion/Evernote alternative they fully own, with zero subscription cost.
  • Cost savings: Notion charges $8–16/mo per user; Evernote charges $8–15/mo. Zen Notes is free software (AGPL-3.0) that runs on a $5 VPS or even a Raspberry Pi [4].
  • Key strength: Absurdly low resource usage (~20MB RAM), clean interface, and standard Markdown/SQLite storage — your notes are readable without Zen forever [2][5].
  • Key weakness: A personal project by a single developer who explicitly states he may not review PRs or respond to issues. Small community (1,065 GitHub stars). No collaboration features. Not production-grade infrastructure software.

What is Zen Notes

Zen Notes is a self-hosted web app for writing and organizing notes in Markdown. It was built by developer Shesh Babu as a personal tool, and that origin story matters: the README opens with “This is a personal project built for my own use. The codebase is available for forking and modifications. Note that I may not actively review pull requests or respond to issues due to time constraints.” [GitHub README]

That’s a refreshingly honest disclaimer, and it shapes everything you should expect from this project.

The app compiles to a single Go binary. Notes are stored as Markdown content inside a local SQLite database. There’s no sync server, no account creation, no cloud relay. The frontend is built with Preact, which means it loads fast without the RAM overhead of Electron [1][2]. You run it, you point a browser at it, you write notes.

The developer introduced it to the r/selfhosted community himself, describing it plainly: “fast and uses less memory (~20MB) and CPU resources… Has search with BM25 ranking… Designed thoughtfully with minimal color palette” [2]. No marketing spin. That post currently sits in the top results for self-hosted note apps.

At 1,065 stars on GitHub, Zen Notes is not a large or mature project. It sits in a different tier from Obsidian (40K+ stars), Joplin (46K+ stars), or Logseq (34K+ stars). It’s a well-executed personal project that resonates with a specific slice of the self-hosted community — people who want something small and predictable rather than something with 400 plugins.


Why People Choose It

The pattern across reviews is consistent: people come to Zen Notes from frustration with bloat.

The main comparison targets are Notion (“overwhelms you with databases”), Obsidian (“drowns you in plugins”), and Evernote (“proprietary format, subscription anxiety”) [4]. Zen’s pitch — do one thing, do it well, store data in formats you can read without the app — lands with developers who’ve been burned by SaaS lock-in or Electron memory hogs.

The BM25 full-text search is the most-cited technical differentiator. BM25 is the same ranking algorithm used by major search engines — it considers term frequency and inverse document frequency to surface the most relevant note, not just the one that contains the most keyword matches [1][5]. For a notes app competing with Notion’s famously mediocre search, this is a real advantage.

The resource usage argument shows up in every third-party piece: ~20MB RAM means you can run Zen Notes on a Raspberry Pi or alongside a dozen other services on a single small VPS without noticing it [1][2][3]. If you’ve ever watched an Obsidian vault take 45 seconds to index 5,000 notes on a slow machine, the appeal of a Go binary with SQLite FTS5 is immediate.

The MCP server support — experimental, but live — is worth noting for AI users. Zen exposes search, list, and read operations as MCP tools, letting you connect Claude Desktop or other MCP-capable AI apps directly to your notes [5][GitHub README]. This is a meaningful addition: it transforms a local notes store into a personal knowledge base your AI assistant can actually query.

What’s harder to find are negative first-hand experiences, partly because the community is small and partly because a low-stakes personal notes app rarely generates angry users. The r/selfhosted post [2] has positive comments but no in-depth user reports of long-term deployment issues. That absence of signal is itself a signal — at 1,065 stars, this hasn’t been stress-tested at scale.


Features

Core:

  • Single Go binary or Docker Compose deployment [2][3]
  • Notes stored as Markdown content in local SQLite (FTS5 extension) [1][5]
  • BM25 full-text search across titles, content, archived and deleted notes [1][3]
  • Tag-based organization — no rigid folder hierarchy [3]
  • Pinned notes, soft delete with restore, archive [GitHub README]
  • Templates with placeholders for repeated note structures [GitHub README]
  • Import (Markdown, plain text) and export (Markdown, JSON, images) [GitHub README]
  • Multiple views: list, card, gallery [website]
  • Image support — drag-and-drop or paste from clipboard [website]
  • Dark mode [2][website]
  • Offline access — reads work without a connection [website]
  • Keyboard shortcuts for core operations [website]
  • Mobile-friendly, installable as PWA [GitHub README]
  • Automated backups via companion tool Zen Backup [GitHub README]

Experimental (labeled as such):

  • Canvas — spatial arrangement of notes and images on an infinite canvas, stored as JSON Canvas format [GitHub README]
  • Semantic search and similar images via companion service Zen Intelligence [GitHub README]
  • MCP server — search, list, read notes from Claude Desktop or any MCP-capable client [5][GitHub README]

The experimental label on MCP and Canvas is honest — these features work but aren’t stable API surfaces. If you’re evaluating this for serious long-term use, treat anything marked experimental as a preview, not a commitment.


Pricing: SaaS vs Self-Hosted Math

Zen Notes has no SaaS offering. The comparison is between self-hosting it and continuing to pay for a commercial alternative.

Commercial alternatives (annual billing):

  • Notion Personal Pro: $8/mo ($96/yr)
  • Notion Team: ~$15/mo per user
  • Evernote Personal: $8/mo ($96/yr)
  • Evernote Professional: ~$10.83/mo
  • Obsidian Sync (optional): $4/mo — the base app is free
  • Bear: $2.99/mo ($35.88/yr) — Apple ecosystem only

Self-hosting Zen Notes:

  • Software: $0 (AGPL-3.0)
  • VPS: $4–6/mo on Hetzner or Contabo for a server that can run Zen alongside other services
  • If you’re already running a homelab or VPS: effectively $0 incremental cost

Concrete scenario: A solo founder paying $8/mo for Notion to store personal notes and documentation. Switch to self-hosted Zen Notes on an existing $6 Hetzner VPS: saves $96/yr. Over three years, that’s $288 saved for a one-time 30-minute setup. The math is obvious, but only if Zen’s feature set covers what you actually use. If you depend on Notion’s database views, Kanban boards, or sharing pages publicly — Zen doesn’t have those, and no amount of cost savings fixes a feature gap.

One honest note on the AGPL-3.0 license: if you plan to embed Zen Notes in a product or offer it as a service, AGPL-3.0 requires you to release your modifications as open source. This is more restrictive than MIT. One third-party deploy guide [3] incorrectly lists the license as MIT — the merged profile and the actual repository confirm AGPL-3.0. Verify before you build anything commercial on top of it.


Deployment Reality Check

The standard path is Docker Compose, and the deploy guides [3] describe it as straightforward. The README also documents building from source, which requires a Go toolchain.

What you actually need:

  • A Linux machine — VPS, homelab server, or Raspberry Pi with ~20MB headroom (easily met)
  • Docker and Docker Compose, or a Go 1.21+ toolchain to build from source
  • A domain and reverse proxy (Caddy is the simplest option) if you want HTTPS and external access
  • Nothing else — no PostgreSQL, no Redis, no message queue. SQLite handles everything.

What can go sideways:

The single-developer project risk is real. The README says maintenance is best-effort. If a release breaks something, you may be waiting for a fix or writing it yourself. There’s no SLA, no enterprise support contract, no company whose business model depends on this working [GitHub README].

The experimental features — Canvas, Zen Intelligence semantic search, MCP server — are useful but carry the uncertainty of early-stage code. Zen Intelligence in particular requires a separate companion service setup; it doesn’t ship with the main binary.

No user management beyond basic auth. If you want multi-user support, fine-grained access control, or team workspaces, Zen doesn’t have it. This is genuinely a single-user (or trusted household) notes app [website].

No end-to-end encryption mentioned anywhere. Your notes in SQLite are as secure as your server’s access controls.

Realistic time estimate: 20–30 minutes for a developer who’s deployed a Docker Compose service before. Under two hours for someone following a guide for the first time. Not a hard deployment, but not a one-click install either.


Pros and Cons

Pros

  • Genuinely tiny resource footprint. ~20MB RAM means it runs alongside everything else without a second thought [1][2]. Electron apps routinely use 500MB+ for the same job.
  • Your data is always readable without the app. Notes are Markdown in SQLite. SQLite is readable with dozens of tools. Markdown is readable in any text editor. No proprietary export needed [4][5].
  • BM25 search is actually good. Relevance ranking in a local notes app is rare. Most alternatives do basic substring matching [1][3].
  • No ongoing cost. AGPL-3.0, runs on cheap hardware, no license fees [4].
  • MCP integration for AI workflows. Experimental but functional — your notes become a queryable knowledge base for AI assistants [5][GitHub README].
  • Canvas feature for visual thinkers. Spatial note arrangement stored in open JSON Canvas format, readable by other compatible apps [GitHub README].
  • No telemetry, no accounts, no cloud relay. Privacy by architecture, not by policy [4].
  • Import/export is complete. Markdown, JSON, and images — no lock-in [GitHub README].

Cons

  • Single-developer, personal project. The README explicitly warns that PRs and issues may not be addressed [GitHub README]. If this is critical infrastructure for you, that’s a serious risk.
  • Small community (1,065 stars). Limited third-party guides, plugins, or community troubleshooting resources. Compare Joplin (46K stars) or Obsidian (40K stars) for contrast.
  • AGPL-3.0, not MIT. Restricts commercial use and embedding. Third-party sources [3] incorrectly say MIT — verify the license yourself.
  • No collaboration. One user per instance effectively. No shared workspaces, no comments, no editing attribution.
  • No end-to-end encryption. Security is your server’s security, no more.
  • Experimental features may break. Canvas, Zen Intelligence, and MCP are marked experimental for a reason.
  • No Notion-style database views or relational structure. If you use Notion as a lightweight database (project tracker, CRM, content calendar), Zen won’t replace that — it’s a notes app, full stop.
  • The SEO content about Zen contains inflated claims. At least two of the third-party sources [1][4] describe Zen as “revolutionary” and compare it favorably against “enterprise-grade” tools with claims that aren’t grounded in the actual feature set. Read them skeptically.

Who Should Use This / Who Shouldn’t

Use Zen Notes if:

  • You want a fast, private notes app that you fully own, and Markdown + tags is enough structure for how you think.
  • You’re already running a VPS or homelab and want to add a notes app with near-zero resource overhead.
  • You’re frustrated with Notion’s complexity for simple personal notes, or Obsidian’s plugin ecosystem feels like maintenance overhead.
  • You want your notes queryable by an AI assistant via MCP without routing data through a cloud service.
  • You’re a solo developer or technical founder who can handle a Go binary deployment.

Skip it if:

  • You need guaranteed maintenance and timely security patches. A personal project by a single developer who says he may not respond to issues is not the right choice for critical infrastructure.
  • You have a team. Zen has no multi-user model worth speaking of.
  • You depend on Notion-style database features, public page sharing, or rich embeds.
  • You want end-to-end encryption for sensitive notes.
  • You’re non-technical and need a one-click cloud install. Zen requires a server and some comfort with the command line.

Stay on Notion if:

  • You use Notion as a lightweight database for projects, clients, or content pipelines. Zen is a notes app, not a database.

Choose Obsidian instead if:

  • You want a mature, large community, a rich plugin ecosystem, and don’t mind the app running locally on your own machine (no self-hosting required for the core app).

Alternatives Worth Considering

  • Joplin — Open source (AGPL-3.0), 46K stars, cross-platform desktop + mobile app, end-to-end encryption, sync via Nextcloud/WebDAV/Dropbox or self-hosted Joplin Server. More mature community and better multi-device sync story than Zen.
  • Silverbullet — Go-based self-hosted notes with its own plugin system. More powerful, steeper learning curve, smaller community than Joplin.
  • Logseq — Outliner-style notes with bidirectional links, local Markdown storage, large community. Better for graph-style knowledge bases; heavier than Zen.
  • Obsidian — Not self-hosted (runs locally), but the most mature desktop notes app in this category. Large plugin ecosystem. Optional paid sync ($4/mo). MIT-ish personal license.
  • Standard Notes — End-to-end encrypted, cross-platform, self-hostable. Better security story. The free tier is limited; full features require a subscription ($90/yr).
  • Notesnook — End-to-end encrypted, cross-platform, open source (GPL-3.0), self-hostable. Strong privacy story and active development.
  • Memos — Another minimal self-hosted notes app (Go + SQLite), but Twitter/microblog-style rather than long-form document notes. Different use case but similar resource profile.

For a non-technical founder who wants something genuinely simple: Joplin is probably a safer bet than Zen, given its larger community and longer track record. For a developer who wants the absolute minimum surface area and is comfortable with best-effort maintenance: Zen is a tighter, cleaner tool.


Bottom Line

Zen Notes is exactly what it says it is: a minimal, fast, private notes app built by one developer for their own use. The technical decisions are sound — Go binary, SQLite, BM25 search, standard Markdown. The resource footprint is genuinely impressive. The MCP integration is a useful early move for AI-heavy workflows. But the project carries real risks that the enthusiastic SEO articles about it ignore: a single maintainer who makes no promise of ongoing support, a small community with limited troubleshooting resources, and no team features whatsoever.

If your notes needs are simple and you want to stop paying $8–16/mo to Notion or Evernote for what amounts to a personal writing tool, Zen Notes is a reasonable choice — provided you’re comfortable knowing the project could go quiet with no notice. If you need something with a long-term maintenance guarantee or team functionality, look at Joplin or Standard Notes instead.

If the deployment is the blocker, that’s a one-time setup that upready.dev handles for clients. You own the infrastructure permanently afterward.


Sources

  1. BrightCoding — “Zen: The Sleek Self-Hosted Notes App Developers Love”. https://converter.brightcoding.dev/blog/zen-the-sleek-self-hosted-notes-app-developers-love
  2. r/selfhosted — “Zen Notes - Distraction free notes app” (post by developer sheshbabu). https://www.reddit.com/r/selfhosted/comments/1lgv9wp/zen_notes_distraction_free_notes_app/
  3. Zeabur — “Zen Notes Deploy Guide”. https://zeabur.com/templates/9YK4HA
  4. OpenSourceDaily — “Zen: Break Free from Note-Taking Chaos”. https://opensourcedaily.blog/zen-break-free-from-note-taking-chaos
  5. MCP Market — “Zen: Self-Hosted Minimal Markdown Notes & Full-Text Search”. https://mcpmarket.com/server/zen-3

Primary sources:

Features

Search & Discovery

  • Full-Text Search
  • Tags / Labels

Data & Storage

  • Backup & Restore

Customization & Branding

  • Templates

Mobile & Desktop

  • Mobile App