Skip to content

lightweight

aniongithub edited this page May 19, 2026 · 1 revision

title: Lightweight type: design-note

Lightweight

A claim we like to make: mind-map is 38 MB total, single binary, no runtime deps. The numbers, the why, and the alternatives.

What you get for 38 MB

Component What it does Approx size
Go runtime GC, scheduler, std lib 3 MB
Pure-Go SQLite (modernc.org/sqlite) The architecture/index-and-search 6 MB
MCP SDK architecture/mcp-server 2 MB
goldmark + frontmatter Markdown + YAML parsers 1 MB
Embedded web UI (compressed) architecture/web-ui 2.5 MB
spf13/cobra, kardianos/service, etc. CLI + service install 2 MB
Mind-map itself architecture/wiki-engine + handlers 1 MB
Other std-lib, symbols, debug info ~20 MB

Get the actual breakdown with:

go tool nm -size $(which mind-map) | sort -k2 -hr | head -20

How does it compare

Tool Binary / app size RAM at idle
mind-map 38 MB ~30 MB
comparisons/obsidian ~150 MB ~250 MB
comparisons/logseq ~200 MB ~400 MB
comparisons/notion ~250 MB ~350 MB

Numbers approximate, measured on a small wiki on Linux.

What makes it small

  • Pure Go. No CGO means a true static binary with no shared-lib dependencies. The architecture/index-and-search is modernc.org/sqlite, a pure-Go transpilation.
  • Preact, not React. ~3 KB gzipped vs React's ~45 KB.
  • Canvas force-graph, not WebGL. design/wikilinks-as-graph is ~50 KB.
  • No Electron. The architecture/web-ui is served by the same Go process and runs in your existing browser.
  • No sidecar daemons. No Elasticsearch, no Redis. SQLite FTS5 handles concepts/search in-process.

What we trade for it

  • No real-time collaboration. See design/rationale.
  • No native rich-text editor — markdown only.
  • No mobile app. Just mobile Safari.

These are deliberate choices, not regrets.

See also

Clone this wiki locally