Diamond Markdown
A knowledge base of your own.
Self-hosted markdown notes with [[wikilinks]], backlinks, graph view, and Obsidian-style live preview. Every save is a git commit. Works in any browser. Your files stay flat on disk.
MIT licensed · Web-first · No Electron · No account · No tracking
Web-first
Works in any browser on any device. No Electron bundle, no platform install. Host on your laptop, a Raspberry Pi, behind Tailscale — same app everywhere.
Git-native
Every save is a commit. Rename a note, every wikilink updates in one atomic commit. Sync across devices with git push. Your history is real, diffable, and portable.
Flat markdown
Your notes are plain .md files on disk. Uninstall Diamond tomorrow; your vault still opens in every markdown tool. Frontmatter is standard YAML.
Everything you'd expect, plus a few things you wouldn't.
Type [[Note]]. Click through. Missing targets render broken; click to create.
Every note that links here, panel-updated live as you save.
Force-directed visualization of your vault's link graph. Drag, pan, zoom.
Obsidian-style WYSIWYG inside the editor. Markers hide when the cursor leaves the line.
Fuzzy quick-switcher (⌘K) and full-text across the vault (⌘⇧F).
Inline #tags or frontmatter tags. Cloud + per-tag note list.
⌘P. Every action is a command, every command is scriptable.
Per-note git log, view any historical revision in place.
⌘⇧D opens today's note, creating it from a template if you've got one.
Mark public: true in frontmatter, publish a deploy-ready static site.
Alt-click to split, drag tabs across panes, edits broadcast to sibling panes.
Point Diamond at any number of folders. Each is its own git repo, its own index.
Two minutes, one terminal.
$ git clone https://github.com/Zollicoff/diamondmarkdown.git
$ cd diamondmd
$ npm install
$ npm run dev
➜ Local: http://localhost:5173
The sample vault ships in-repo so the app opens with real content. Point it at your own folder via the vault switcher — or run it behind Tailscale, a reverse proxy, or Cloudflare Tunnel to use it from every device you own.
Production builds use @sveltejs/adapter-node. A Tauri desktop wrapper is on the roadmap but not required — the web app is the first-class target.
If you like Obsidian but want to own the stack.
Diamond borrows its mental model from Obsidian — vaults, wikilinks, backlinks, graph, daily notes, live preview. What it doesn't borrow is Electron, a proprietary sync protocol, a paid publish service, or a plugin runtime locked to one app. If Obsidian fits your workflow, keep using Obsidian. If you want the same ideas in a browser tab, backed by git, under an MIT license — that's Diamond.