An open source, lightweight note-taking service. Easily capture and share your great thoughts.
Go to file
milvasic a759acc6a7 fix: address PR review comments for table editor
Bugs:
- Fix replaceNthTable off-by-one: findAllTables now uses truly exclusive
  end index (start + text.length) so content.slice(start, end) === text
- Replace fragile DOM-based table index resolution with AST-based approach
  using node.position.start.offset from hast ReactMarkdownProps

Architecture:
- Unify TableEditorDialog instances: InsertMenu no longer manages its own
  dialog, instead calls onOpenTableEditor from parent MemoEditor which
  owns the single shared dialog instance
- Remove onInsertText prop chain (InsertMenu → EditorToolbar → MemoEditor)
  replaced by onOpenTableEditor

Other improvements:
- Add i18n: all hardcoded English strings now use useTranslate()/t() with
  new editor.table.* keys in en.json
- Fix useCallback [props] dependency that defeated memoization (removed
  with dialog unification)
- Use stable row IDs (monotonic counter) as React keys instead of array
  indices in TableEditorDialog
- Replace hardcoded MONO_FONT constant with Tailwind font-mono class
  (maps to project's --font-mono CSS variable)
- Add 28 vitest tests for markdown-table.ts covering parse, serialize,
  findAllTables, replaceNthTable, createEmptyTable with edge cases
- Add vitest dev dependency with test/test:watch scripts
2026-03-24 18:32:49 +01:00
.github feat: add GitHub release installer and release workflow 2026-03-17 20:16:16 +08:00
cmd/memos feat(cli): add version subcommand (#5731) 2026-03-18 08:41:34 +08:00
docs/issues feat: add outline navigation to memo detail sidebar (#5771) 2026-03-24 00:20:40 +08:00
internal chore(backend): update Go toolchain and dependencies (#5730) 2026-03-16 21:07:52 +08:00
plugin chore: improve access to default fields in cron parser (#5750) 2026-03-20 18:50:07 +08:00
proto feat: add blur_content attribute to tag metadata settings (#5767) 2026-03-23 19:42:27 +08:00
scripts fix: improve installer compatibility and docs 2026-03-17 20:46:18 +08:00
server feat: add blur_content attribute to tag metadata settings (#5767) 2026-03-23 19:42:27 +08:00
store refactor(store): remove synthetic system bot user lookup (#5778) 2026-03-24 22:16:30 +08:00
web fix: address PR review comments for table editor 2026-03-24 18:32:49 +01:00
.dockerignore perf: optimize CI/CD workflows and Docker builds 2026-01-14 22:12:28 +08:00
.gitignore chore: add .worktrees to gitignore 2026-01-03 12:44:37 +08:00
.golangci.yaml fix(ci): remove invalid revive rule 'use-waitgroup-go' from golangci-lint config 2026-01-06 21:12:40 +08:00
AGENTS.md fix: address PR review comments for table editor 2026-03-24 18:32:49 +01:00
CLAUDE.md chore: align branding with brand guidelines (#5693) 2026-03-07 11:32:36 +08:00
CODEOWNERS chore: tweak CODEOWNERS 2026-03-05 19:14:16 +08:00
LICENSE chore: update LICENSE (#4394) 2025-02-11 15:45:20 +08:00
README.md chore: revamp featured sponsors in README 2026-03-25 00:02:26 +08:00
SECURITY.md chore: tweak security report email 2026-02-05 19:43:19 +08:00
go.mod feat(user): add per-user tag metadata settings (#5735) 2026-03-18 23:15:14 +08:00
go.sum feat(user): add per-user tag metadata settings (#5735) 2026-03-18 23:15:14 +08:00

README.md

Memos

Memos

Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours.

Home Live Demo Docs Discord Docker Pulls

Memos Demo Screenshot
Warp
Warp
The AI-powered terminal built for speed and collaboration
TestMu AI
TestMu AI
The worlds first full-stack Agentic AI Quality Engineering platform
SSD Nodes
SSD Nodes
Affordable VPS hosting for self-hosters
InstaPods
InstaPods
Get your app online in seconds
Deploy Memos in Seconds

Features

  • Instant Capture — Timeline-first UI. Open, write, done — no folders to navigate.
  • Total Data Ownership — Self-hosted on your infrastructure. Notes stored in Markdown, always portable. Zero telemetry.
  • Radical Simplicity — Single Go binary, ~20MB Docker image. One command to deploy with SQLite, MySQL, or PostgreSQL.
  • Open & Extensible — MIT-licensed with full REST and gRPC APIs for integration.

Quick Start

docker run -d \
  --name memos \
  -p 5230:5230 \
  -v ~/.memos:/var/opt/memos \
  neosmemo/memos:stable

Open http://localhost:5230 and start writing!

Native Binary

curl -fsSL https://raw.githubusercontent.com/usememos/memos/main/scripts/install.sh | sh

Try the Live Demo

Don't want to install yet? Try our live demo first!

Other Installation Methods

  • Docker Compose - Recommended for production deployments
  • Pre-built Binaries - Available for Linux, macOS, and Windows
  • Kubernetes - Helm charts and manifests available
  • Build from Source - For development and customization

See our installation guide for detailed instructions.

Contributing

Contributions are welcome — bug reports, feature suggestions, pull requests, documentation, and translations.

Sponsors

Love Memos? Sponsor us on GitHub to help keep the project growing!

Star History

Star History Chart

License

Memos is open-source software licensed under the MIT License. See our Privacy Policy for details on data handling.


WebsiteDocumentationDemoDiscordX/Twitter

Vercel OSS Program