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

# Bouw je eerste feature

Een end-to-end-wandeling van één native shell-wijziging naar een geverifieerd venster.

## Walkthrough voor beginners

Vereisten: lees de twee beginnersgidsen hieronder, voltooi de lokale Desktop-setup en open deze repository bij zijn root in je editor. De shell leest SUPASTACK_APP_URL als terminalinstelling bij het starten — niet uit een opgeslagen .env-bestand.

Korte termen: een werkruimte bestaat uit de afzonderlijke gebruikers, gegevens en instellingen van één team. De server is de vertrouwde backend; houd providersleutels uit de browser- en telefooncode. Een migratie is een versiebeheer van de database, waarbij tabellen worden gemaakt of bijgewerkt. Een AI-model is de motor die antwoord geeft; de modelcatalogus is de serverlijst met beschikbare model-ID's en prijzen. Een provider is een externe service, zoals een AI-, e-mail- of factureringsservice. Een recht is een subsidie ​​waarmee een werkruimte een functie kan gebruiken. Een webhook is een bericht dat de ene service naar de URL van een andere service verzendt.

1. Open `.agents/skills/add-a-desktop-capability/SKILL.md` — of vraag je coding-agent hem te volgen — en maak één kleine native wijziging, bijvoorbeeld een nieuw Beeld-menu-item of een andere oproep-sneltoets.

2. Voer `cargo check` uit, start de shell en oefen de wijziging in het geopende venster.

3. Herhaal op elk besturingssysteem dat je wilt leveren — tray-, sneltoets- en menugedrag verschilt per platform.

Noem voor eigen code het gedrag, het menu of de sneltoets die het beïnvloedt en wat er op elk OS moet gebeuren. Geef je coding-agent deze taak en vraag hem `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` en de `.ai/`-spiegels van de bestanden te lezen die hij zal aanraken; laat hem bestanden en controles opsommen voor het bewerken; en laat hem je de diff tonen. Gebruik voorbeeldwaarden; plak nooit een echt geheim.

[Voordat u begint](https://supastack.dev/nl/docs/desktop/before-you-start.md)

[Basisbeginselen van de terminal](https://supastack.dev/nl/docs/desktop/terminal-basics.md)

[Lokale installatie op het bureaublad](https://supastack.dev/nl/docs/desktop/ship-in-5-minutes.md)

[Agentprompts en projectgeheugen](https://supastack.dev/nl/docs/desktop/agents.md)


## Beslis eerst native of product

Alles wat een gebruiker als product-UI ervaart — schermen, gegevens, instellingen — hoort bij de webapp en komt automatisch in het venster aan. Alleen OS-niveaugedrag hoort bij Rust: vensters, tray, menu's, globale sneltoetsen, starten bij aanmelden en update-controles.

```
apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.json
```


## Houd de webview-sandbox strak

De webview kan alleen aanroepen wat `capabilities/default.json` opsomt. Een wijziging die een nieuwe plugin nodig heeft voegt de crate toe in `Cargo.toml`, registreert hem in `lib.rs` en verleent het minimale recht in capabilities — nooit een wildcard.

Persistente shell-status — vensterpositie, zoom, update-kanaal, venstervoorkeuren — leeft in de gegevensmap van de app via de meegeleverde sidecars, niet in bestanden die je met de hand beheert.


## Verifieer op elk doel-OS

Voer cargo test uit, dan een echt venster op Windows, macOS en Linux: vensterstatus-herstel, sluiten-naar-tray, single-instance-focus en de oproep-sneltoets met jouw wijziging actief. Een OS dat slaagt bewijst de andere twee niet.

[Native menu's en venstervoorkeuren](https://supastack.dev/nl/docs/desktop/menus.md)

[Desktop-testchecklist](https://supastack.dev/nl/docs/desktop/testing.md)


## Volgende

[Bouwen met een codeeragent](https://supastack.dev/nl/docs/desktop/agents.md)
