{"slug": "why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of", "title": "Why We Built a Local-First AI Knowledge Space with Tauri 2 + Vue 3 (Instead of Electron)", "summary": "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.", "body_md": "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:\n\n**Should we build on Electron, or take the plunge into Tauri 2 and Rust?**\n\nToday, 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.\n\nHere is why we chose **Tauri 2 + Rust + Vue 3**, what we built, and the architectural lessons we learned along the way.\n\nAs 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.\n\nWhen 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.\n\nWith **Tauri 2**:\n\n`ipcRenderer` / `contextBridge`.\nIn 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.\n\nTo achieve this entirely on-device, we designed a hybrid storage model in Rust:\n\n**Relational Metadata with SQLite**:\n\n`PRAGMA journal_mode = WAL;` and batched transactions, reducing thousands of record inserts from multiple minutes to single-digit milliseconds.\n**Embedded Vector Search with LanceDB**:\n\n`nomic-embed-text` or `qwen3-embedding:0.6b`) are indexed locally into columnar arrow format, enabling sub-millisecond similarity queries with zero network egress.\nIf you have used retrieval-augmented generation (RAG) on editable documents, you've likely encountered **citation drift**:\n\nTo 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.\n\nFor the visual interface, we paired Vue 3’s Composition API with Konva for hardware-accelerated 2D canvas manipulation:\n\n`.canvas`). Cards and links can be opened seamlessly in Obsidian or other compatible tools.\nTransitioning from an internal tool to a public open-source project taught us three key principles:\n\nKnovum 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:\n\n👉 **GitHub Repository**: [https://github.com/madebyzan/knovum](https://github.com/madebyzan/knovum)\n\nWe would love your feedback, PRs, and a ⭐️ if you find the project interesting!", "url": "https://wpnews.pro/news/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of", "canonical_source": "https://dev.to/zand/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of-electron-35bi", "published_at": "2026-10-24 09:32:00+00:00", "updated_at": "2026-10-24 09:42:57.985325+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-infrastructure", "ai-agents"], "entities": ["Knovum", "Tauri 2", "Vue 3", "Rust", "Electron", "SQLite", "LanceDB", "Konva"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of", "markdown": "https://wpnews.pro/news/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of.md", "text": "https://wpnews.pro/news/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of.txt", "jsonld": "https://wpnews.pro/news/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of.jsonld"}}