cd /news/ai-tools/why-we-built-a-local-first-ai-knowle… · home › topics › ai-tools › article
[ARTICLE · art-156685] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

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.

by read2 min views3 publishedOct 24, 2026

When we set out to build 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 We would love your feedback, PRs, and a ⭐️ if you find the project interesting!

── more in #ai-tools 4 stories · sorted by recency
── more on @knovum 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/why-we-built-a-local…] indexed:0 read:2min 2026-10-24 · —