Dépôt GitHub
Modèle minimal d’abonnement Next.js + Supabase + Dodo Payments
Démo en direct
Explorez la démo déployée
Aperçu
Un modèle prêt pour la production pour les abonnements utilisant Next.js 15, React 19, Supabase, Drizzle ORM et Dodo Payments. Il est livré avec Google OAuth, le paiement d’abonnement, la gestion des webhooks, le schéma de base de données et un tableau de bord de base.Si vous avez seulement besoin de gestionnaires de routes pour une application existante, consultez les adaptateurs dédiés : Adaptateur Next.js et Adaptateur Express.
Prérequis
- Node.js 18+ (ou Bun 1.0+)
- Projet Supabase (URL, clé Anon, clé de rôle de service, URL de base de données)
- Compte Dodo Payments (clé API, secret de webhook)
- Client OAuth Google Cloud (ID et secret du client)
Démarrage rapide
1
Cloner et installer
2
Créer un projet Supabase
Créez un projet Supabase et copiez :
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- SUPABASE_SERVICE_ROLE_KEY
- DATABASE_URL (chaîne de connexion)
3
Configurer Google OAuth
Définissez l’URI de redirection sur :
https://[your-project-ref].supabase.co/auth/v1/callback dans Google Cloud, puis activez le fournisseur Google dans Supabase Auth en utilisant votre ID et secret de client.4
Configurer Dodo Payments
Générez une clé API et un secret de webhook depuis le tableau de bord Dodo. Définissez l’environnement sur
test_mode pendant le développement.5
Créer .env.local
6
Provisionner le schéma de base de données
Tables créées :
users, subscriptions, payments.7
Déployer la fonction webhook
cURL
8
Ajouter un webhook dans Dodo Payments
Définissez l’URL de l’endpoint sur :Sélectionnez les événements de paiement et d’abonnement.
9
Créer des produits et des fonctionnalités
Dans le tableau de bord Dodo → Produits → Créer un produit. Ajoutez éventuellement des métadonnées :L’interface utilisateur de tarification lit ce
features tableau et le rend dynamiquement.10
Exécuter le serveur de développement
Ce qui est inclus
- Authentification via Supabase (Google OAuth configuré)
- Paiement d’abonnement via Dodo Payments
- Fonction Edge Supabase pour les webhooks (
dodo-webhook) - Schéma et migrations Drizzle ORM
- Tableau de bord avec factures, statut d’abonnement et fonctionnalités du plan
Fichiers et chemins clés
- Fonction Edge
- Routes Next.js
- Base de données (Drizzle)
Variables d’environnement
Supabase
Supabase
Dodo Payments
Dodo Payments
Google OAuth
Google OAuth
Vérification et dépannage
Signature de webhook invalide (401)
Signature de webhook invalide (401)
- Assurez-vous que
DODO_WEBHOOK_SECRETcorrespond à la valeur du tableau de bord Dodo - Confirmez que vous avez déployé la dernière
dodo-webhookfonction - Vérifiez que le nom de l’en-tête est correct dans votre fonction (Dodo-Signature)
Échec de l'envoi à la base de données
Échec de l'envoi à la base de données
- Vérifiez la syntaxe de
DATABASE_URLet la sortie réseau de Supabase - Attendez ~2–3 minutes après la création du projet avant le premier envoi
Mismatch de redirection OAuth
Mismatch de redirection OAuth
- L’URI de redirection doit être
https://[ref].supabase.co/auth/v1/callback - Assurez-vous que c’est le même dans Google Cloud et le fournisseur Auth Supabase
Vous avez maintenant un abonnement SaaS fonctionnel structuré avec Supabase et Dodo Payments.
Dépôt original et étapes détaillées : dodo-supabase-subscription-starter.