Le stack central
Frontend : WeWeb — UI pixel perfect, se connecte à n'importe quel backend, se déploie sur votre propre domaine via Cloudflare CDN.
Base de données + Auth : Supabase — PostgreSQL, Row-Level Security, souscriptions temps réel, stockage de fichiers.
Logique métier + API : Xano — constructeur d'API REST, logique métier personnalisée, intégrations tierces, webhooks.
Paiements : Stripe — abonnements, factures, webhooks vers Xano.
Email : Resend ou SendGrid — emails transactionnels déclenchés par Xano.
Ce stack gère 10 000 MAU sans transpirer. Nous l'avons fait fonctionner à 50 000 MAU sans changement d'infrastructure. Pour le marché français, nous recommandons de choisir une région EU pour Supabase afin de garantir la conformité RGPD.
Multi-tenancy avec Supabase RLS
Chaque table possède une colonne workspace_id. Toutes les politiques Row-Level Security filtrent sur workspace_id = auth.jwt() ->> 'workspace_id'.
Les utilisateurs appartiennent à des workspaces via une table workspace_members avec une colonne role (owner, admin, member). Lorsqu'un utilisateur se connecte, le JWT inclut son workspace_id et son rôle — Supabase l'applique automatiquement au niveau de la base de données.
C'est la décision architecturale la plus importante dans un SaaS B2B. La corriger dès le jour 1 évite une refonte douloureuse lors de votre croissance. Nous avons vu des startups perdre 2–3 mois de développement pour avoir négligé ce point au démarrage.
Architecture de facturation avec Stripe
Dans Xano, créez un endpoint webhooks qui reçoit les événements Stripe. Gérez : checkout.session.completed (créer un enregistrement d'abonnement), customer.subscription.updated (mettre à jour le plan), invoice.payment_failed (restreindre l'accès).
Stockez le statut d'abonnement dans une table workspace_settings. Dans WeWeb, vérifiez le statut d'abonnement avant d'afficher les fonctionnalités premium — et dans les politiques RLS de Supabase pour les restrictions au niveau des données.
Ne faites jamais confiance au frontend pour les contrôles de facturation. Vérifiez toujours dans la base de données. En France, pensez aussi à la conformité TVA et à l'intégration avec les outils de facturation locaux comme Pennylane.
Optimisation des performances
Stratégie d'indexation : indexez chaque clé étrangère, chaque colonne status/type utilisée dans les filtres, et toute colonne sur laquelle vous triez. Dans Supabase, cela prend 2 minutes dans l'éditeur SQL.
Pagination : tous les endpoints de liste doivent paginer. Ne retournez jamais de requêtes non bornées. Utilisez la pagination par curseur pour les données temps réel (défilement infini) et l'offset pour les tables d'administration.
Cache : Xano supporte la mise en cache des réponses pour les endpoints qui retournent les mêmes données à tous les utilisateurs (contenu public, tables de référence). Utilisez-le agressivement.
Monitoring et gestion des erreurs
Ajoutez Sentry à votre code personnalisé WeWeb pour les erreurs frontend. Xano journalise toutes les requêtes API — exportez-les vers Datadog ou utilisez le monitoring d'erreurs intégré de Xano.
Pour les jobs en arrière-plan critiques (webhooks de facturation, déclencheurs d'emails), ajoutez des notifications d'erreur dans Slack via Make. Vous devez connaître les échecs avant vos utilisateurs.
Monitoring de base de données : Supabase fournit des informations sur les performances des requêtes. Passez en revue les requêtes lentes chaque semaine. Un bon monitoring dès le départ est la différence entre découvrir un problème à 2h du matin et le prévenir.