Desktop application framework

Core Architecture

  1. Frontend wraps web UI in a desktop window
  2. Frontend cannot directly access OS
  3. Rust:
**// App Startup:**
OS launches binary
   ↓
Rust main()
   ↓
Tauri runtime initializes
   ↓
Window created
   ↓
WebView created
   ↓
Frontend loaded
   ↓
IPC bridge ready

**// Running:**
Frontend (WebView)
   ↓ invoke()
IPC Message (JSON)
   ↓
Rust Command Handler
   ↓
Rust Logic (FS / DB / OS) -> OS APIs (File, DB, Window, System)
   ↓
Serialized Response
   ↓
JS Promise resolved

Storage

Option Use Case
Files (JSON / MD) Notes, config
SQLite (rusqlite) Structured data
Key-Value Store Settings
OS secure storage Tokens, secrets

Project Structure

src/                    # Frontend (React, Vue, etc.)
 ├─ main.tsx (React)
src-tauri/              # Rust + Tauri backend
 ├─ src/
 │   ├─ main.rs
 │   └─ commands.rs
 ├─ tauri.conf.json

Build Tauti app

Frontend Build
  (Vite / Webpack)
        ↓
Static Assets (HTML / JS / CSS)
        ↓
Embedded into Rust Binary
        ↓
Rust Compilation
        ↓
Rust launches OS WebView
        ↓
Native App (.exe / .app / .deb)
        ↓
WebView loads local assets