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

# Estructura del proyecto

Encuentre el shell de Rust, la página de arranque, los scripts de lanzamiento y el límite con la aplicación web.

## Configuración y ajustes

Antes de cualquier paso, lea [Antes de empezar](https://supastack.dev/es/docs/desktop/before-you-start.md) y [Conceptos básicos de la terminal](https://supastack.dev/es/docs/desktop/terminal-basics.md). Abra la carpeta supastack en su raíz: la carpeta que contiene package.json. Un checkout de Desktop contiene apps/desktop y sus scripts de lanzamiento; el monorepo All Platforms añade el backend Web y la aplicación móvil. Una variable de entorno es una configuración con nombre almacenada en un archivo .env local o en su panel de hosting; el shell lee SUPASTACK_APP_URL como configuración de terminal, no desde un archivo.

1. Abra `apps/desktop/src-tauri/src/lib.rs`: todo el comportamiento nativo vive en este único archivo.

2. Explore `apps/desktop/src-tauri/`: configuración, capabilities e iconos.

3. Desde la raíz del repositorio ejecute `corepack pnpm --filter @supastack/desktop dev` con un backend accesible.

El checkout contiene solo el shell de Tauri: el código fuente de Rust, su configuración, la página de arranque y los scripts de lanzamiento. Las pantallas del producto viven en la aplicación web que carga la ventana: un checkout solo de Desktop no tiene pantallas de aplicación propias. Lea AGENTS.md y .ai/PROJECT_CONTEXT.md antes de cambiar el comportamiento; los documentos espejo de `.ai/` registran decisiones que no se ven solo en un archivo.

```
apps/desktop/src-tauri/src/    Rust — window, tray, menus, deep links, updater
apps/desktop/src-tauri/        tauri.conf.json, capabilities/, Cargo.toml, icons
apps/desktop/ui/               Boot page (index.html + boot.js) shown while loading
apps/desktop/scripts/          Release preflight + update manifest
docs/                          Runbooks incl. desktop updates
.agents/skills/                Task guides for coding agents
```


## Dónde pertenece un cambio

Antes de editar, decida qué lado es dueño del cambio: cualquier cosa que un usuario vea como UI de producto pertenece a la aplicación web; solo el comportamiento a nivel de SO pertenece a Rust.

[Construya su primera funcionalidad de escritorio](https://supastack.dev/es/docs/desktop/first-feature.md)

- Comportamiento de ventana, bandeja, menú, atajo o instancia única → `apps/desktop/src-tauri/src/lib.rs`.
- Un nuevo permiso de webview → `apps/desktop/src-tauri/capabilities/default.json`: amplíe solo cuando una función nativa lo necesite.
- Identificador de paquete, versión, endpoint del actualizador u opciones de plugins → `apps/desktop/src-tauri/tauri.conf.json`.
- Iconos de producto de marcador de posición → reemplace `placeholder-icon.png` y ejecute el script de iconos.
- Comportamiento de arranque, carga o capa sin conexión → `apps/desktop/ui/`.
- Cualquier pantalla, configuración o dato de producto → el repositorio de la aplicación web: el shell nunca bifurca UI de producto.


## Flujo de implementación

Para un cambio nativo, edite `lib.rs`, ejecute `cargo check` y las pruebas de Rust, luego ejercite la ventana en cada SO de destino: el comportamiento de bandeja, atajo y deep link difiere por plataforma. El skill `add-a-desktop-capability` en `.agents/skills/` recorre este mismo orden.


## Verificación y solución de problemas

`cargo check` atrapa errores de compilación y `cargo test` cubre la lógica pura. La verificación real es la ventana en ejecución en Windows, macOS y Linux: la bandeja, el atajo y los deep links no pueden probarse solo con tests.

```
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
```


## Siguiente

[Construye tu primera funcionalidad](https://supastack.dev/es/docs/desktop/first-feature.md)
