For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /nl/docs/desktop/first-feature.md (or send Accept: text/markdown).
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.
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.jsonHoud 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.