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

# Pile technologique Desktop

Les technologies dans le shell Tauri et le rôle que joue chacune.

## Avant de commencer

L'application Desktop est volontairement mince : un cœur Rust possède la fenêtre native tandis qu'une webview charge votre application web. Tout ci-dessous est déjà épinglé dans le checkout — cette page explique ce que fait chaque pièce pour que les guides suivants aient du sens.

L'UI produit, l'authentification, la facturation et l'IA vivent toutes dans la base de code web que la fenêtre charge. Un checkout uniquement Desktop ne contient que le shell — c'est pourquoi cette pile est petite à dessein.


## Tauri 2 + la webview système

Tauri 2 rend l'application avec la webview propre au système d'exploitation — WebView2 sous Windows, WebKit sous macOS, WebKitGTK sous Linux —, le shell reste donc petit et n'embarque aucun runtime de navigateur. `frontendDist` pointe vers `apps/desktop/ui`, la page de démarrage affichée pendant le chargement de l'application web, donc un démarrage à froid ne rend jamais une fenêtre vide.

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


## Rust + TypeScript

Le comportement du shell est en Rust — `src-tauri/src`, édition 2021, Rust minimum 1.90 — compilé par cargo. De petits scripts Node écrits en TypeScript gèrent le preflight de release et le manifeste de l'updater.

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


## Fonctions natives via plugins

L'état de la fenêtre, l'instance unique, les deep links, le raccourci global, la barre d'état, le lancement à la connexion, l'updater, l'ouverture de liens externes, les dialogues et le contrôle de processus proviennent tous de crates `tauri-plugin-*` — le shell n'ajoute aucune commande IPC propre. Ajouter une capacité native signifie enregistrer un autre plugin ou câbler ceux déjà présents.


## tauri.conf.json + capabilities

L'identifiant de bundle `com.supastack.desktop`, la liste des fenêtres, les options de plugins et l'endpoint de l'updater vivent dans `src-tauri/tauri.conf.json`. Les permissions de la webview restent dans `src-tauri/capabilities/default.json` — actuellement `core:default` plus `opener:allow-open-url` pour les liens du navigateur système — et ne s'élargissent que lorsqu'une fonction native en a besoin.


## Outillage de vérification

cargo test couvre la logique Rust — résolution d'URL, la gate de navigation, le mapping des deep links, les canaux de l'updater, le zoom et les préférences de fenêtre — tandis que `node --check` valide la page de démarrage et que `check:release-config` verrouille les builds de release. CI compile les trois systèmes d'exploitation.

```
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop check:release-config
```


## Suivant

[Lancer et configurer l’enveloppe](https://supastack.dev/fr/docs/desktop/run.md)
