For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /it/docs/desktop/tech-stack.md (or send Accept: text/markdown).
Stack tecnologico Desktop
Le tecnologie dentro la shell Tauri e il ruolo che ognuna svolge.
Prima di iniziare
L'app Desktop è volutamente sottile: un nucleo Rust possiede la finestra nativa mentre una webview carica la tua app web. Tutto qui sotto è già bloccato nel checkout — questa pagina spiega cosa fa ogni pezzo affinché le guide successive abbiano senso.
La UI di prodotto, l'autenticazione, la fatturazione e l'AI vivono tutte nella codebase web che la finestra carica. Un checkout solo Desktop contiene solo la shell — ecco perché questo stack è piccolo di proposito.
Tauri 2 + la webview di sistema
Tauri 2 rende l'app con la webview propria del sistema operativo — WebView2 su Windows, WebKit su macOS, WebKitGTK su Linux — quindi la shell resta piccola e non porta con sé un runtime di browser incorporato. frontendDist punta a apps/desktop/ui, la pagina di avvio mostrata mentre l'app web si carica, quindi un avvio a freddo non rende mai una finestra vuota.
Rust + TypeScript
Il comportamento della shell è Rust — src-tauri/src, edizione 2021, Rust minimo 1.90 — compilato da cargo. Piccoli script Node scritti in TypeScript gestiscono il preflight di rilascio e il manifest dell'updater.
Funzionalità native tramite plugin
Lo stato della finestra, l'istanza singola, i deep link, la scorciatoia globale, il tray, l'avvio all'accesso, l'updater, l'apertura di link esterni, i dialoghi e il controllo dei processi provengono tutti da crate tauri-plugin-* — la shell non aggiunge comandi IPC propri. Aggiungere una capacità nativa significa registrare un altro plugin o cablare quelli già presenti.
tauri.conf.json + capabilities
L'identificatore del bundle com.supastack.desktop, l'elenco delle finestre, le opzioni dei plugin e l'endpoint dell'updater vivono in src-tauri/tauri.conf.json. I permessi della webview restano in src-tauri/capabilities/default.json — attualmente core:default più opener:allow-open-url per i link del browser di sistema — e si ampliano solo quando una funzionalità nativa ne ha bisogno.
Strumenti di verifica
cargo test copre la logica Rust — risoluzione degli URL, il gate di navigazione, il mapping dei deep link, i canali dell'updater, lo zoom e le preferenze della finestra — mentre node --check valida la pagina di avvio e check:release-config protegge le build di rilascio. La CI compila tutti e tre i sistemi operativi.
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop check:release-config