GitHub Repository
Minimales Next.js + Supabase + Dodo Payments-Subscription-Boilerplate
Live Demo
Bereitgestellte Demo ansehen
Übersicht
Ein produktionsbereites Boilerplate für Abonnements mit Next.js 15, React 19, Supabase, Drizzle ORM und Dodo Payments. Enthält Google OAuth, Subscription-Checkout, Webhook-Verarbeitung, Datenbankschema und ein grundlegendes Dashboard.Wenn du nur Route-Handler für eine bestehende App benötigst, sieh dir die speziellen Adaptoren an: Next.js Adaptor und Express Adaptor.
Voraussetzungen
- Node.js 18+ (oder Bun 1.0+)
- Supabase-Projekt (URL, Anon-Key, Service-Role-Key, Database-URL)
- Dodo Payments-Konto (API key, Webhook secret)
- Google-Cloud-OAuth-Client (Client ID und Secret)
Schnellstart
1
Clone and install
2
Create Supabase project
Erstelle ein Supabase-Projekt und kopiere:
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- SUPABASE_SERVICE_ROLE_KEY
- DATABASE_URL (Verbindungszeichenfolge)
3
Configure Google OAuth
Lege die Redirect-URI auf
https://[your-project-ref].supabase.co/auth/v1/callback in Google Cloud fest und aktiviere anschließend den Google-Provider in Supabase Auth mit deiner Client ID und deinem Secret.4
Configure Dodo Payments
Erstelle einen API key und ein Webhook secret im Dashboard von Dodo. Setze die Umgebung während der Entwicklung auf
test_mode.5
Create .env.local
6
Provision database schema
Erstellte Tabellen:
users, subscriptions, payments.7
Deploy webhook function
cURL
8
Add webhook in Dodo Payments
Setze die Endpunkt-URL auf:Wähle Zahlungs- und Subscription-Ereignisse aus.
9
Create products and features
Öffne im Dashboard von Dodo den Bereich „Products“ → „Create Product“. Füge optional Metadaten hinzu:Die Preis-UI liest dieses
features-Array aus und rendert es dynamisch.10
Run the dev server
Enthaltene Funktionen
- Authentifizierung über Supabase (Google OAuth konfiguriert)
- Subscription-Checkout über Dodo Payments
- Supabase Edge Function für Webhooks (
dodo-webhook) - Drizzle-ORM-Schema und Migrationen
- Dashboard mit Rechnungen, Subscription-Status und Planfunktionen
Wichtige Dateien und Pfade
- Edge Function
- Next.js routes
- Database (Drizzle)
Umgebungsvariablen
Supabase
Supabase
Dodo Payments
Dodo Payments
Google OAuth
Google OAuth
Überprüfung und Fehlerbehebung
Webhook signature invalid (401)
Webhook signature invalid (401)
- Stelle sicher, dass
DODO_WEBHOOK_SECRETmit dem Wert aus dem Dashboard von Dodo übereinstimmt - Bestätige, dass du die aktuelle
dodo-webhook-Funktion bereitgestellt hast - Überprüfe, ob der Headername in deiner Funktion korrekt ist (Dodo-Signature)
Database push fails
Database push fails
- Überprüfe die Syntax von
DATABASE_URLund den Supabase-Netzwerk-Egress - Warte nach der Projekterstellung etwa 2–3 Minuten, bevor du den ersten Push durchführst
OAuth redirect mismatch
OAuth redirect mismatch
- Die Redirect-URI muss
https://[ref].supabase.co/auth/v1/callbacksein - Stelle sicher, dass sie in Google Cloud und beim Supabase-Auth-Provider identisch ist
Du verfügst nun über ein funktionsfähiges Subscription-SaaS-Grundgerüst mit Supabase und Dodo Payments.
Original-Repository und ausführliche Schritte: dodo-supabase-subscription-starter.