Most note-taking tools ask you to decide before you write. Title? Folder? Workspace? Project? By the time you've answered, the thought is gone. Memos doesn't ask. Open it, type, save. The note lands in a reverse-chronological timeline. Tag it later. Find it with search. That's the model.
One Docker command to deploy, SQLite by default, no telemetry, no subscription. MIT licensed, 61,000+ GitHub stars, written in Go.
What Memos is
Memos (usememos.com) is an open-source, self-hosted quick-capture note-taking tool. Go backend, TypeScript/React frontend. MIT licensed. Current release: v0.29.1 (June 2026). SQLite by default, PostgreSQL and MySQL also supported. Single container, no external dependencies.
The design philosophy is deliberate minimalism. Not trying to be Notion or Obsidian. A timeline for quick capture — closer to a private feed of your own thoughts than a structured knowledge base.
The timeline model
Every memo is a timestamped entry in a reverse-chronological timeline. No folders, no nested pages, no hierarchy. You never decide where something goes — you write it, it exists, you search for it later.
Each memo has: Visibility (Private / Protected / Public), inline tags with #tag syntax automatically indexed, pinning, relations (link memos to each other), reactions, and attachments.
Markdown editor
v0.29.0 shipped a rebuilt CodeMirror 6 editor. Markdown stays visible and unchanged while headings, formatting, tags, and mentions are styled in place — no WYSIWYG mode switching. Tag completion, list indentation, focus mode, and a formatting toolbar. Full Markdown support: headings, code blocks with syntax highlighting, tables, task lists, blockquotes.
Tags and search
Tags written inline as #tagname anywhere in the memo text — no separate UI. The sidebar shows all tags with memo counts, clickable to filter the timeline. Full-text search is fast: Go + SQLite handle personal note volumes efficiently.
Public sharing and microblog
Per-memo visibility: set each note independently to private, protected, or public. Public memos appear at a clean URL on your instance. Many people run Memos as a personal public microblog on their own domain — same instance, different visibility per memo, no separate tool.
REST API and MCP
Full REST API at /api/v1, authenticated with personal access tokens. v0.29.0 shipped a rebuilt MCP (Model Context Protocol) integration — Memos exposes an OpenAPI-driven MCP toolset covering memos, comments, relations, reactions, shortcuts, and attachments. An AI agent can read and write your Memos instance as a tool: "save this to my notes", "search my memos for kubernetes".
Signed webhooks (Standard Webhooks HMAC-SHA256) fire on memo events — useful for n8n automations: new #task memo → create ticket, new public memo → push to newsletter.
Web Clipper
Official Chrome and Firefox extensions. Select text on any page, right-click → save to Memos. Review the clip, choose visibility, customize the Markdown format before saving.
Self-hosting
docker run -d \
--name memos \
-p 5230:5230 \
-v ~/.memos:/var/opt/memos \
neosmemo/memos:stableNavigate to http://localhost:5230, complete setup, start writing. SQLite lives in ~/.memos — backup is a directory copy. For production with Docker Compose:
services:
memos:
image: neosmemo/memos:stable
restart: unless-stopped
ports:
- "5230:5230"
volumes:
- ./memos:/var/opt/memosPut Traefik in front for HTTPS. PostgreSQL or MySQL replace SQLite via --driver and --dsn flags for larger multi-user deployments. Helm charts available for Kubernetes. ARM supported — runs on Raspberry Pi. Resource usage: ~50MB RAM at idle. Runs comfortably on the smallest VPS tier alongside many other containers.
Multi-user
Multiple accounts on one instance, each with their own private timeline and public profile. Admin controls open or invite-only registration. Works as a shared family or small-team note space with individual private areas.
Memos vs Notion / Obsidian / AFFiNE
vs Notion — category mismatch. Notion is a structured knowledge base with databases, relational tables, and project management. If you use Notion primarily for daily logs, quick notes, and bookmarks — Memos does that better and simpler, self-hosted, for free.
vs Obsidian — Obsidian is for building connected knowledge with backlinks and graph view, stored as plain .md files. Memos is for quick capture without hierarchy. Many people run both: Memos for daily capture, Obsidian for long-form knowledge building.
vs AFFiNE — AFFiNE combines docs, whiteboard, and databases in one self-hosted workspace. Much more powerful but also heavier (PostgreSQL + Redis + Electron). Memos is a single container at 50MB RAM. Different use cases — AFFiNE for team knowledge, Memos for personal quick capture.
Who it's for
Good fit:
- Anyone wanting a frictionless private scratchpad on their own infrastructure
- Developers who want REST API and MCP integration for AI agent workflows
- Teams running a shared quick-notes instance for daily logs and snippets
- People who want a lightweight public microblog on their own domain
- Home lab runners who want a useful low-resource service
Not ideal:
- Structured knowledge bases with databases and project management — use Notion or AFFiNE
- Plain Markdown file storage with graph backlinks — use Obsidian
- Enterprise SSO/SCIM requirements — no commercial entity or SLA behind Memos
My take
The timeline model with no folders removes the most common note-taking friction: deciding where to put something. You don't decide — you write, search later. The resource footprint justifies running it on any home server: one container, 50MB RAM, SQLite backup is a directory copy.
The MCP integration is the most interesting recent development. Memos as a personal knowledge store that AI tools can read from and write to makes it useful in agentic workflows beyond just human note-taking. 61,000+ stars without a commercial entity behind it is a genuine signal — this is a tool people actually use and recommend.
PIPOLINE · DEVOPS CONSULTING
Need help setting up a self-hosted notes stack?
Deploying Memos — Docker Compose, Traefik for HTTPS, custom domain, PostgreSQL for multi-user, API automation with webhooks and n8n, and MCP wiring for AI tools — takes an afternoon. I can wire it into your existing self-hosted infrastructure.
Get in touch at pipoline.com →
Member discussion