Aller au contenu
supastack
Parcourir la documentation

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 /fr/docs/desktop.md (or send Accept: text/markdown).

Présentation du bureau

Un shell webview Tauri autour de la même application web — une présence, pas un second produit.

Parcours pas à pas pour débuter

Conditions préalables : lisez les deux guides pour débutants ci-dessous et terminez la configuration locale du bureau, y compris les conditions préalables de Rust et du système d'exploitation. Le bloc de code démarre à la fois l'application Web et Tauri dans le monorepo ; dans une extraction sur ordinateur uniquement, utilisez sa commande filtrée uniquement après avoir démarré séparément un backend Web accessible. Tauri charge ce backend.

Termes rapides : un espace de travail est constitué des utilisateurs, des données et des paramètres distincts d'une équipe. Le serveur est le backend de confiance ; gardez les clés du fournisseur hors du code du navigateur et du téléphone. Une migration est une modification de base de données versionnée qui crée ou met à jour des tables. Un modèle d'IA est le moteur qui répond ; le catalogue de modèles est la liste du serveur des identifiants de modèles et des prix disponibles. Un fournisseur est un service externe tel qu'un service d'IA, de messagerie ou de facturation. Un droit est une subvention qui permet à un espace de travail d'utiliser une fonctionnalité. Un webhook est un message qu'un service envoie au URL d'un autre service.

1. Suivez la configuration locale du bureau, puis ouvrez l'application dans la fenêtre Tauri et connectez-vous au même compte Web que vous utilisez dans un navigateur.

2. Visitez une page d'espace de travail, masquez/affichez la fenêtre de la barre d'état et essayez le raccourci d'invocation.

3. L'écran doit correspondre à l'application Web car Tauri charge le backend configuré. S'il est vide, confirmez que SUPASTACK_APP_URL pointe vers une application Web en cours d'exécution accessible.

Pour le code personnalisé, commencez par le prompts/README.md fourni et copiez l'invite la plus proche : prompts/new-app-screen.md pour un écran d'application ou prompts/new-landing-page.md pour une page publique. Pour le travail sur un serveur, une base de données ou un fournisseur, confiez à votre agent de codage la tâche de ce guide et demandez-lui de lire les miroirs AGENTS.md, .ai/PROJECT_CONTEXT.md et .ai/ correspondants ; inspectez les fichiers sources exacts nommés ici ; lister les fichiers et les vérifications avant de les modifier ; préserver la propriété de l'espace de travail et les secrets du serveur ; et je vous montre la différence. Indiquez-lui le comportement souhaité, les champs d'entrée et de sortie, les rôles autorisés, les succès et erreurs attendus, ainsi que le compte, le fournisseur ou l'appareil de test. Utilisez des exemples de valeurs ; ne collez jamais un vrai secret.

# Monorepo: start the web app and desktop shell together
corepack pnpm dev:desktop

# Desktop-only checkout: start Tauri after a web backend is already reachable
corepack pnpm --filter @supastack/desktop dev

Une seule interface produit, un shell natif

apps/desktop est une webview Tauri autour de votre application web. Il partage avec le web l’interface produit, l’authentification et le chat ; le comportement natif de fenêtre et de zone de notification se trouve dans src-tauri/src/lib.rs. Il a besoin d’un backend web accessible et n’embarque pas d’interface produit indépendante.

Utiliser les fonctions du shell natif

Le shell fournit un menu de zone de notification, la fermeture vers la zone, la focalisation de l’instance unique, un raccourci global d’affichage, des menus natifs de navigation et d’affichage, l’ouverture des liens externes dans le navigateur système, l’appel du shell par lien profond supastack://, la mémorisation de l’état de fenêtre et une couche hors ligne avec action Réessayer.

SUPASTACK_APP_URL choisit le backend : valeur d’exécution valide, puis valeur de compilation, puis localhost. SUPASTACK_DESKTOP_HOTKEY remplace CmdOrCtrl+Shift+Space. Les builds de publication signés injectent SUPASTACK_UPDATER_ENDPOINT et SUPASTACK_UPDATER_PUBKEY ; lorsque le chemin du point de terminaison contient {{channel}}, le menu de l’application active Beta Updates (stable ou beta, remplaçable à l’exécution via SUPASTACK_UPDATE_CHANNEL).

Choisir le parcours bureau

Pour le développement local, lancez le web et le bureau ensemble, puis compilez et vérifiez la cible native avec ses prérequis de plateforme. La signature de store, les installateurs et le comportement physique du bureau exigent une acceptation séparée.

Un shell webview, pas une deuxième application

apps/desktop est un shell Tauri 2.x. Le cœur Rust dans src-tauri gère la fenêtre, la barre d'état système et le raccourci global, tandis qu'une webview charge l'application web. Interface, authentification, billing et AI viennent du même codebase Next.js — la surface desktop ajoute une présence, pas un produit parallèle.

Le shell embarque une page placeholder dans apps/desktop/ui qui s'affiche pendant le chargement de l'application web — un démarrage à froid ne rend jamais une fenêtre vide.

Pointer le shell vers un déploiement

La cible de la fenêtre se résout dans l'ordre : la variable d'environnement SUPASTACK_APP_URL à l'exécution, puis la valeur de SUPASTACK_APP_URL fixée à la compilation, puis http://localhost:3000. Seules les URL http et https sont acceptées — les valeurs vides ou non web basculent sur le candidat suivant.

Pour le développement, cela signifie que la coque se fixe à tout ce que corepack pnpm dev sert. Pour la production, définissez la variable au moment de la construction pour qu'elle soit intégrée à votre application Web déployée.

Garder les secrets côté serveur

Le shell ne transporte aucun identifiant de provider. La webview dialogue avec la même surface d'API authentifiée qu'un navigateur — clés de providers, secrets de session et configuration de billing restent sur le serveur.

L'identifiant de bundle com.supastack.desktop et l'ensemble de capabilities par défaut (core:default) maintiennent la webview en sandbox ; n'élargissez les permissions dans src-tauri/capabilities que lorsqu'une fonctionnalité native l'exige.

Pour poursuivre la configuration, consultez Lancer et configurer l’enveloppe.

Questions fréquentes

14 questions

Qu'est-ce que supastack ?

supastack est une fondation modulaire pour construire des produits SaaS avec IA. Elle réunit l'infrastructure commune pour que vous puissiez vous concentrer sur les fonctionnalités propres à votre produit.

Prend-il en charge le web et le mobile ?

Oui. supastack inclut des applications Next.js et Expo comme points de départ pour des expériences web et mobile.

Quelle authentification est incluse ?

Better Auth couvre e-mail/mot de passe, OTP et connexion sociale. Les espaces de travail personnels sont provisionnés avec le compte pour que les enregistrements restent délimités dès le premier jour.

Comment l'IA est-elle prise en charge ?

supastack inclut une IA multi-fournisseurs configurable, le suivi d'usage, des budgets, et la prise en charge chiffrée de vos propres clés (BYOK).

Comment les abonnements sont-ils gérés ?

Pour les produits construits sur le kit, la facturation Stripe, les abonnements et les droits d'accès forment la base de l'accès payant. Les secrets fournisseur restent côté serveur.

Où vit le code propre à mon produit ?

Les fonctionnalités propres au produit restent dans un codebase séparé, tandis que le produit configure et intègre les modules de la fondation supastack.

Comment fonctionne la tarification de supastack ?

Le kit est un achat unique avec mises à jour à vie : Un framework à 249 $ (prix de lancement temporaire — 100 $ de réduction par rapport au prix habituel de 349 $) ou Tous les frameworks (Next.js, iOS, Android) à 499 $ (prix de lancement temporaire — 100 $ de réduction par rapport au prix habituel de 599 $), plus 75 $ par siège développeur supplémentaire. Pas d'abonnement au kit. Le paiement sur ce site livre votre clé de licence par e-mail, avec accès au dépôt via invitation GitHub.

Comment les espaces de travail délimitent mes données ?

Les enregistrements appartenant aux utilisateurs sont délimités par workspaceId. Identité, droits d'accès, usage IA, événements de facturation et entrées d'audit restent dans le périmètre de l'espace personnel.

Comment fonctionnent les jobs en arrière-plan ?

Trigger.dev est le runtime de jobs explicite. Le contrat JobRunner ne promet que enqueue, status et cancel — la sémantique de workflow reste propre à Trigger.dev et explicite.

En quoi l'e-mail diffère-t-il de la prospection ?

L'e-mail transactionnel couvre les flux produit comme les avis de fin de tâche. La prospection à froid et les campagnes relèvent du produit, hors du module e-mail de ce kit.

Comment fonctionnent les achats sur mobile ?

Le mobile inclut les achats natifs et leur restauration via RevenueCat, avec un accès vérifié par votre serveur. Configurez les comptes des boutiques et terminez les tests sur appareil avant publication. La facturation web reste séparée.

Où vivent les clés des fournisseurs IA ?

Les identifiants BYOK sont chiffrés et restent côté serveur. Les clés sont masquées dans les journaux ; l'usage et les budgets restent visibles au niveau de l'espace de travail.

Quels moyens de paiement le checkout accepte-t-il ?

Le checkout hébergé par Stripe accepte les cartes et peut aussi proposer Alipay et WeChat Pay une fois ces portefeuilles activés sur le compte Stripe — pratique pour les acheteurs en Chine. Les autorisations de portefeuille se confirment de manière asynchrone : la page de licence se met à jour dès que le paiement est validé.

Puis-je obtenir un remboursement ?

Une fois que vous avez accès au dépôt, supastack vous appartient pour toujours et ne peut donc pas être remboursé. Mais rassurez-vous : vous obtenez le code source complet avec des mises à jour à vie pour créer et déployer un nombre illimité de produits pour vous ou vos clients. Vous ne pouvez simplement pas revendre le code ni redistribuer le dépôt sous forme de kit de démarrage ou de modèle.

FR
Thème