A self-hosted, browser-based markdown note-taking app in the spirit of Obsidian — delivered as a single Rust binary. Point it at any directory on the server (the "vault") and get a full WYSIWYG markdown editor accessible from any browser.
- Live Preview (WYSIWYG) — Rich markdown editing with Milkdown, rendered inline
- Source mode — Raw markdown with CodeMirror 6 syntax highlighting
[[wikilinks]]— Link between notes with autocomplete- Folder tree — Navigate vault by folders; markdown files shown in note list with snippets
- Full-text search — Search note titles and content
- Auto-save — Changes saved automatically with ETag-based conflict detection
- File watcher — External file changes reflected live in the browser
- Outline panel — Jump between headings
- Single binary — No runtime dependencies; frontend embedded in the binary
# Serve a directory of markdown notes on port 3000
obselia /path/to/notes
# Custom address and port
obselia /path/to/notes -a 127.0.0.1 -p 8080
# Use a YAML config file
obselia -c config.ymlvault: /path/to/notes
port: 3000
address: 0.0.0.0CLI flags override config file values.
# Build the Rust backend
cargo build --release
# (Optional) Build the frontend separately for development
cd frontend
npm install
npm run devThe release binary at target/release/obselia embeds the production frontend.
- Backend: Rust + Axum + Tokio
- Frontend: Svelte 5 + TypeScript + Vite
- Editor: Milkdown (live) + CodeMirror 6 (source)
- Search: Regex-based (v1)
MIT
