Why We Built a Local-First AI Knowledge Space with Tauri 2 + Vue 3 (Instead of Electron) A developer built Knovum, an open-source, local-first desktop knowledge workspace that pairs an infinite 2D canvas with on-device AI synthesis, choosing Tauri 2, Rust, and Vue 3 over Electron to cut idle memory use and keep data on the machine. The app uses a hybrid Rust storage model combining SQLite with WAL-mode batched transactions for relational metadata and LanceDB for embedded vector search, indexing local embeddings such as nomic-embed-text for sub-millisecond similarity queries with no network egress. It also implements a mutation-aware provenance engine that captures content-addressed span hashes to flag or realign citations when source notes change. When we set out to build Knovum https://github.com/madebyzan/knovum —an open-source, local-first desktop workspace that combines an infinite 2D canvas with on-device AI synthesis—we faced an architectural fork in the road that every desktop developer eventually encounters: Should we build on Electron, or take the plunge into Tauri 2 and Rust? Today, almost every popular developer tool defaults to Electron. It’s mature, has an enormous ecosystem, and lets web developers build cross-platform apps in a weekend. But for a local-first knowledge management tool designed to run alongside IDEs, compiler jobs, and local LLMs, Electron brought severe trade-offs. Here is why we chose Tauri 2 + Rust + Vue 3 , what we built, and the architectural lessons we learned along the way. As developers, our daily workflow already involves running VS Code, Slack, Discord, and a browser. Each of these ships with its own bundled Chromium instance and Node.js runtime. When your note-taking app or knowledge base consumes 600MB–1.2GB of RAM just sitting idle in the background, your laptop fans spin up during Docker builds, and battery life takes a noticeable hit. With Tauri 2 : ipcRenderer / contextBridge . In Knovum, privacy is a fundamental architecture requirement, not a marketing checkbox. Notes, meeting recordings, PDF highlights, and code snippets never leave the user's machine unless explicitly requested. To achieve this entirely on-device, we designed a hybrid storage model in Rust: Relational Metadata with SQLite : PRAGMA journal mode = WAL; and batched transactions, reducing thousands of record inserts from multiple minutes to single-digit milliseconds. Embedded Vector Search with LanceDB : nomic-embed-text or qwen3-embedding:0.6b are indexed locally into columnar arrow format, enabling sub-millisecond similarity queries with zero network egress. If you have used retrieval-augmented generation RAG on editable documents, you've likely encountered citation drift : To fix this, Knovum implements a mutation-aware provenance engine . When document chunks are ingested, we capture immutable content-addressed span hashes. If an underlying note is mutated, existing citations visibly flag as detached or auto-realign with the updated span. For the visual interface, we paired Vue 3’s Composition API with Konva for hardware-accelerated 2D canvas manipulation: .canvas . Cards and links can be opened seamlessly in Obsidian or other compatible tools. Transitioning from an internal tool to a public open-source project taught us three key principles: Knovum is early-access and 100% open on GitHub. If you are interested in local-first software, Tauri 2 architecture, or spatial note-taking with private AI: 👉 GitHub Repository : https://github.com/madebyzan/knovum https://github.com/madebyzan/knovum We would love your feedback, PRs, and a ⭐️ if you find the project interesting