Theme

Basalt

Basalt is an Obsidian-class desktop Markdown workspace that pushes the boundaries of what a note-taking app can be. Built with Tauri (Rust) on the backend and React on the frontend, it targets sub-16ms input latency, sub-800ms time-to-interactive, and sub-150ms search across 5,000+ notes. The entire heavy-lifting — parsing, search indexing, vault crawling, and link graph construction — runs in Rust, while the React frontend stays thin and responsive. Every architectural decision is documented in ADRs, from the three-layer UI architecture to the native search stack (Tantivy + Nucleo).

Basalt screenshot
RustReact 19TypeScriptTauriTailwindCSSShadcn/UIVite
  • Full-text search powered by Tantivy with fuzzy matching via Nucleo — search across thousands of notes in milliseconds from the ⌘F or ⌘O palette.
  • Vault indexing engine with filesystem watching, metadata extraction, and link graph construction — all written in Rust for maximum performance.
  • Tab system with drag-and-drop reordering, per-pane editor instances (one CodeMirror per visible pane), command palette, and a centralized keyboard shortcut system.
  • Three-layer architecture: Primitives (packages/ui/), Features (state + IPC), Shell (layout composition) — clean separation of concerns.
  • Theme system using --sat-* CSS custom properties across surface, text, accent, layout, state, and editor token families.
  • ADR-driven development — 11 Architectural Decision Records document every major design choice.

Architecture

├── crates/                    # Rust workspace
│   ├── basalt-parser          # Markdown parsing & metadata
│   ├── basalt-graph           # Link graph construction
│   ├── basalt-search          # Tantivy + Nucleo search
│   ├── basalt-vault           # Vault indexing & watcher
│   ├── basalt-wasm            # WASM bindings
│   └── basalt-types           # Shared types
├── apps/
│   └── tauri/                 # Tauri desktop shell
│       ├── src/               # React frontend
│       │   ├── app-shell/     # Layout composition
│       │   ├── features/      # Editor, search, tabs, vault, settings
│       │   └── routes/        # TanStack Router
│       └── src-tauri/         # Rust backend commands
└── packages/
    └── ui/                    # shadcn primitives