# Tauri + React + SQLite
URL: https://wwadd.dev/stacks/tauri-react-sqlite
Last verified: 2026-09-28

Small, fast desktop apps built with web skills, with data stored on the user's machine.

## When to use it
- You're shipping a desktop tool and the team already writes React
- Data should live locally and keep working offline
- Download size and memory use matter — a 150 MB installer is a hard sell for a utility

## How the pieces fit
React renders the UI inside the operating system's own webview, so no browser is bundled. Tauri's Rust core handles what a web page can't — files, windows, the system tray, auto-updates — and exposes it as commands the frontend calls like async functions. SQLite lives in a single file in the app's data directory and is queried from Rust, so reads are local disk operations with no server. The frontend never touches the database directly; it asks Rust, which keeps permissions tight.

## The tech and its role
- [Tauri](https://wwadd.dev/tools/tauri): Desktop shell, native APIs, IPC
- [React + TypeScript](https://wwadd.dev/tools/react): UI in the system webview
- [Vite](https://wwadd.dev/tools/vite): Frontend dev server and build
- [Rust](https://wwadd.dev/tools/rust): Native commands and database access
- [SQLite](https://wwadd.dev/tools/sqlite): Local, single-file storage

## Real-world examples
- Yaak: Open-source desktop API client: a Tauri app with a React frontend that stores workspaces and history in SQLite through rusqlite. (source: https://github.com/mountain-loop/yaak)
- Jan: Offline ChatGPT alternative: a Tauri shell around a React web app, with SQLite support through sqlx for local data. (source: https://github.com/janhq/jan)

## Skip if
Skip if you need pixel-identical rendering on every OS or rely on Chromium-only APIs — each platform's webview differs, and Electron is the safer bet there.

