# Why We Built a Local-First AI Knowledge Space with Tauri 2 + Vue 3 (Instead of Electron)

> Source: <https://dev.to/zand/why-we-built-a-local-first-ai-knowledge-space-with-tauri-2-vue-3-instead-of-electron-35bi>
> Published: 2026-10-24 09:32:00+00:00

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!
