Skip to main content

GitHub Repository

Boilerplate minimal Next.js + Supabase + Dodo Payments pour les abonnements

Live Demo

Explorer la démo déployée

Vue d’ensemble

Un boilerplate prêt pour la production destiné aux abonnements, utilisant Next.js 15, React 19, Supabase, Drizzle ORM et Dodo Payments. Il inclut Google OAuth, le checkout des abonnements, la gestion des webhooks, le schéma de base de données et un tableau de bord de base.
Si vous avez uniquement besoin de route handlers 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 Service, URL de base de données)
  • Compte Dodo Payments (clé API, secret de webhook)
  • Client OAuth Google Cloud (ID client et secret)

Démarrage rapide

1

Clone and install

2

Create Supabase project

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

Configure 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 à l’aide de votre ID client et de votre secret.
4

Configure 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

Create .env.local

Ne validez jamais de secrets dans le dépôt. Utilisez des variables d’environnement dans les environnements de déploiement.
6

Provision database schema

Tables créées : users, subscriptions, payments.
7

Deploy webhook function

cURL
8

Add webhook in Dodo Payments

Définissez l’URL du endpoint sur :
Sélectionnez les événements de paiement et d’abonnement.
9

Create products and features

Dans le tableau de bord Dodo → Produits → Créer un produit. Ajoutez éventuellement des métadonnées :
L’interface de tarification lit ce tableau features et l’affiche dynamiquement.
10

Run the dev server

Ouvrez http://localhost:3000.

Contenu inclus

  • Authentification via Supabase (Google OAuth configuré)
  • Checkout des abonnements via Dodo Payments
  • Supabase Edge Function pour les webhooks (dodo-webhook)
  • Schéma et migrations Drizzle ORM
  • Tableau de bord avec les factures, l’état de l’abonnement et les fonctionnalités du plan
Conservez DODO_PAYMENTS_ENVIRONMENT comme test_mode jusqu’à la fin des tests de bout en bout.

Fichiers et chemins principaux

Variables d’environnement

Vérification et dépannage

  • Vérifiez que DODO_WEBHOOK_SECRET correspond à la valeur du tableau de bord Dodo
  • Confirmez que vous avez déployé la dernière fonction dodo-webhook
  • Vérifiez que le nom de l’en-tête est correct dans votre fonction (Dodo-Signature)
  • Vérifiez la syntaxe de DATABASE_URL et la sortie réseau de Supabase
  • Attendez environ 2 à 3 minutes après la création du projet avant le premier push
  • L’URI de redirection doit être https://[ref].supabase.co/auth/v1/callback
  • Assurez-vous qu’elle est identique dans Google Cloud et dans le fournisseur Supabase Auth
Vous disposez maintenant d’une structure SaaS d’abonnement fonctionnelle, créée avec Supabase et Dodo Payments.
Dépôt d’origine et étapes détaillées : dodo-supabase-subscription-starter.
Dernière modification le 31 juillet 2026