GitHub - sheshbabu/zen: Selfhosted notes app. Single golang binary, notes stored as markdown within SQLite, full-text search, very low resource usage

2 min read Original article ↗

Zen

Live DemoFeaturesUpdates

Features

  • Single Go binary or Docker Compose
  • Low resource usage
  • Standard Markdown files, local SQLite database
  • Organize with flexible tags, not rigid folders
  • Markdown features like tables, code blocks, task lists, highlights, and more
  • Full-text search with BM25 ranking
  • Import and export data with full portability
  • Templates
  • Pinned notes
  • Archive and soft delete notes
  • Minimal dependency footprint
  • Automated backups (via Zen Backup)

Experimental Features

  • Canvas for spatial organization of notes and images (stored as JSON Canvas)
  • Semantic search for notes and images (via Zen Intelligence)
  • Similar images (via Zen Intelligence)
  • MCP for searching, listing and reading notes

Installation

Build from source

Local Development

Run the application using default configuration

Run the application in watch mode

Install air and esbuild

$ go install github.com/air-verse/air@latest
$ go install github.com/evanw/esbuild/cmd/esbuild@latest

Schema Migrations

  • Create new migration file under ./migrations
  • Use the format <version>_<title>.sql

Image Versioning

$ git tag x.y.z
$ git push origin x.y.z

Contributions

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.

Thanks