Aller au contenu
Tous les articles
5 min de lecture

Une checklist de lancement SaaS qui va au-delà de la page d'accueil

Vérifiez la connexion, les données client, l'accès payant, les tâches en échec et les chemins de support avant d'inviter des gens dans votre produit.

l'équipe supastack

Parcourez la première session du client

Créez un compte frais dans l'environnement que vous prévoyez de publier. Suivez la vérification ou les callbacks fournisseur, rechargez l'application, modifiez un profil et déconnectez-vous. Répétez le parcours sur un écran étroit au clavier. Votre session de développement habituelle peut masquer des étapes de configuration manquantes et un état périmé.

Vérifiez les messages qui expliquent quoi faire ensuite. Un écran vide doit proposer une action utile. Une requête en échec doit expliquer comment réessayer sans laisser croire que le travail a réussi. Utilisez le langage du produit réel dans ces messages et assurez-vous que les liens de compte et de support mènent à de vraies destinations.

Répétez le parcours une fois par méthode de connexion. Les callbacks OAuth de Google et de GitHub portent chacun leurs propres redirections et modes d'échec (le guide de configuration OAuth couvre leur paramétrage), et l'écran de consentement de test d'un fournisseur se comporte différemment de celui de production.

  • La création de compte et la restauration de session fonctionnent.
  • La déconnexion révoque l'accès et efface la présentation de l'utilisateur précédent.
  • Les états vide, chargement et erreur restent compréhensibles sur mobile.
  • Chaque fournisseur OAuth boucle son callback sur le vrai domaine.
  • Les e-mails de vérification et de réinitialisation arrivent, se lisent clairement et pointent vers le bon environnement.
  • L'expérience de première utilisation dit au nouvel utilisateur quoi faire ensuite.

Prouvez l'accès payant côté serveur

Le checkout est la moitié facile. Parcourez tout le cycle de vie dans le sandbox du fournisseur : achat, webhook reçu et vérifié, droit d'accès persisté, fonctionnalité payante débloquée — puis renouvellement, annulation et remboursement. Chaque transition doit changer un état possédé par le serveur, pas seulement un drapeau client. Le guide de facturation montre où supastack conserve cet état.

Testez ensuite les événements que vous espérez ne jamais voir : un webhook livré deux fois, un paiement en échec, un abonnement qui expire au milieu d'une tâche. Un droit d'accès répond à « est-ce permis maintenant » au moment de la requête ; un badge de tableau de bord, non.

  • Un achat en sandbox aboutit et débloque la fonctionnalité payante.
  • Les livraisons de webhook en double sont sûres — le traitement est idempotent.
  • L'annulation et le remboursement révoquent l'accès à la frontière serveur.
  • Les limites par siège ou par usage, si elles existent, rejettent au-delà de leurs conditions.

Vérifiez les frontières avec de vraies dépendances

Utilisez deux comptes indépendants pour vérifier l'appartenance. Essayez de lire et de modifier l'enregistrement d'un compte depuis l'autre, y compris le statut de tâche et les URL de reprise. Vérifiez l'accès payant à la frontière de l'action serveur, pas seulement en cachant un bouton dans l'interface.

Les enregistrements rattachés à un espace de travail sont la colonne vertébrale d'un produit multi-tenant — l'article sur les frontières d'espace de travail explique le modèle. Quelle que soit votre stack, la question de lancement est la même : chaque lecture et écriture dérive-t-elle l'appartenance du contexte authentifié du serveur, sans qu'aucun ID d'enregistrement ni espace envoyé par le client ne soit accepté comme preuve ?

  • Les lectures et écritures entre espaces sont rejetées.
  • Les URL de reprise et de tâche ne donnent pas accès par elles-mêmes.
  • Les vues liste et détail appliquent le même périmètre.
  • Les clés API et webhooks, s'ils existent, portent aussi le périmètre d'espace.

Exercez les chemins d'échec exprès

Le travail en arrière-plan échoue de deux façons distinctes, et chacune exige son propre test. Un dispatch en échec laisse le client incertain sur la mise en file du travail — une clé d'idempotence bornée à la tâche et une soumission sauvegardée permettent à la reprise de réutiliser la requête originale au lieu de la dupliquer. Une fin en échec signifie que le travail a tourné mais que le résultat n'est jamais arrivé — les retries et l'interrogation de statut doivent combler cet écart sans seconde génération.

Appliquez le même raisonnement aux fournisseurs : un timeout du fournisseur IA, un e-mail qui rebondit, une erreur de l'API de facturation. Chacun doit aboutir à un état précis et explicable plutôt qu'à un demi-résultat silencieux. Le guide de reprise de tâches documente comment le chemin de production du kit gère cela.

  • Un retry après un timeout de soumission ne duplique ni travail ni coût.
  • Une fin en échec est visible et récupérable, pas une perte silencieuse.
  • Les erreurs fournisseur parviennent à l'utilisateur comme des états honnêtes, pas comme des crashs génériques.

Préparez-vous au premier échec

Assurez-vous que quelqu'un puisse trouver une erreur, la relier à la tâche concernée et aider l'utilisateur à reprendre sans exposer les secrets fournisseur. Confirmez quels journaux et enregistrements d'audit existent, combien de temps vous les conservez et comment un opérateur y accède.

Décidez avant le lancement à quoi ressemble « quelque chose ne va pas » : livraisons de jobs en échec, erreurs de vérification de webhook, montée soudaine de la dépense fournisseur. Une alerte que personne ne reçoit n'est pas du monitoring — la configuration de l'observabilité couvre le câblage de ces signaux.

Traitez les sauvegardes comme un exercice opérationnel : une sauvegarde configurée n'est pas une sauvegarde restaurée. Exécutez la restauration une fois, sur des données qui ressemblent à la production, avant le jour où vous en aurez besoin.

  • Une erreur peut être retracée jusqu'à la requête, l'utilisateur et la tâche qui l'ont causée.
  • Les journaux et enregistrements d'audit ont un responsable, une politique de rétention et des règles d'accès.
  • Une sauvegarde a été restaurée, pas seulement configurée.
  • Les jobs en échec et les erreurs de webhook déclenchent une alerte qu'une personne reçoit.

Vérifiez les surfaces autour du produit

Les surfaces légales et de communication font partie du lancement, pas du polissage : des pages de confidentialité et de conditions qui décrivent ce que le produit fait réellement, une adresse de support qui atteint une personne, et un domaine d'expédition vérifié pour que l'e-mail transactionnel arrive depuis une adresse qui vous appartient.

Lisez chaque e-mail automatisé comme le ferait un client. Les messages de vérification, de réinitialisation, de reçu et de fin doivent porter le nom du produit, des liens vers le bon environnement et un chemin de réponse qui n'est pas une adresse noreply morte.

  • Les pages de confidentialité et de conditions décrivent le produit que vous exploitez réellement.
  • L'e-mail transactionnel part d'un domaine vérifié qui vous appartient.
  • Les questions de support et de facturation ont une destination joignable.

Rendez la décision de lancement explicite

Assemblez le dossier de version : la révision du build, l'environnement cible, ce qui a été testé et comment, et ce qui reste non vérifié. Une checklist avec des lacunes assumées vaut mieux qu'un résumé confiant — c'est dans les lacunes que vit généralement le premier incident.

Décidez le chemin de retour en arrière avant d'en avoir besoin : comment annuler le déploiement, ce qu'il advient des données écrites entre-temps, et qui tranche. Lancez ensuite la plus petite version de l'offre que vous pouvez pleinement supporter, puis élargissez-la délibérément.

Questions fréquentes sur le lancement

Les checklists de lancement échouent à des endroits prévisibles. Voici les questions qui en attrapent la plupart.

  • Qu'oublient la plupart des lancements SaaS ? — Les extrémités des flux : une déconnexion qui révoque vraiment, une annulation qui retire vraiment l'accès, et un exercice de restauration pour la sauvegarde qui existe sur le papier.
  • De combien de comptes de test ai-je besoin ? — Au moins deux, dans l'environnement cible. L'isolation des données et les flux d'invitation ne se vérifient pas avec un seul.
  • Tester en sandbox ou en production ? — Les deux. Le sandbox prouve la logique du cycle de vie ; une petite transaction réelle prouve que clés, domaines et webhooks sont câblés au bon endroit.
  • Quand peut-on lancer en sécurité ? — Quand chaque élément qui protège les données ou l'argent des clients est vérifié, et que les éléments non vérifiés sont écrits avec des responsables — pas quand la liste de fonctionnalités paraît complète.
  • Qu'est-ce qui change après le lancement ? — Gardez le dossier de version, surveillez les alertes d'échec que vous avez configurées, et ré-exécutez la checklist après tout changement notable d'auth, de facturation ou de périmètre.

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