> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 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.

- [Tauri](https://tauri.app)


## 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.

- [Rust](https://www.rust-lang.org)


## 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
```


## Successivo

[Esecuzione e configurazione della shell](https://supastack.dev/it/docs/desktop/run.md)
