Salta al contenuto
supastack
Sfoglia la documentazione
App desktopTauri

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