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

# Pila tecnológica de Desktop

Las tecnologías dentro del shell de Tauri y el papel que desempeña cada una.

## Antes de comenzar

La aplicación Desktop es deliberadamente delgada: un núcleo de Rust posee la ventana nativa mientras una webview carga su aplicación web. Todo lo siguiente ya está fijado en el checkout: esta página explica qué hace cada pieza para que las guías posteriores tengan sentido.

La UI del producto, la autenticación, la facturación y la IA viven todas en la base de código web que carga la ventana. Un checkout solo de Desktop contiene solo el shell, razón por la cual esta pila es pequeña a propósito.


## Tauri 2 + la webview del sistema

Tauri 2 renderiza la aplicación con la propia webview del sistema operativo —WebView2 en Windows, WebKit en macOS, WebKitGTK en Linux—, por lo que el shell se mantiene pequeño y no lleva un runtime de navegador empaquetado. `frontendDist` apunta a `apps/desktop/ui`, la página de arranque que se muestra mientras carga la aplicación web, por lo que un arranque en frío nunca renderiza una ventana en blanco.

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


## Rust + TypeScript

El comportamiento del shell es Rust —`src-tauri/src`, edición 2021, Rust mínimo 1.90— compilado por cargo. Pequeños scripts de Node escritos en TypeScript manejan el preflight de lanzamiento y el manifiesto del actualizador.

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


## Funciones nativas a través de plugins

El estado de la ventana, la instancia única, los deep links, el atajo global, la bandeja, el inicio al iniciar sesión, el actualizador, la apertura de enlaces externos, los diálogos y el control de procesos provienen de crates `tauri-plugin-*`: el shell no añade comandos IPC propios. Agregar una capacidad nativa significa registrar otro plugin o conectar los ya presentes.


## tauri.conf.json + capabilities

El identificador de paquete `com.supastack.desktop`, la lista de ventanas, las opciones de plugins y el endpoint del actualizador viven en `src-tauri/tauri.conf.json`. Los permisos de la webview permanecen en `src-tauri/capabilities/default.json` —actualmente `core:default` más `opener:allow-open-url` para enlaces del navegador del sistema— y se amplían solo cuando una función nativa los necesita.


## Herramientas de verificación

cargo test cubre la lógica de Rust —resolución de URL, la puerta de navegación, el mapeo de deep links, los canales del actualizador, el zoom y las preferencias de ventana— mientras `node --check` valida la página de arranque y `check:release-config` protege las compilaciones de lanzamiento. CI compila los tres sistemas operativos.

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


## Siguiente

[Ejecuta y configura la shell](https://supastack.dev/es/docs/desktop/run.md)
