Skip to main content

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

Committe niemals Secrets. Verwende Umgebungsvariablen in Deployment-Umgebungen.
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

Öffne http://localhost:3000.

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
Behalte DODO_PAYMENTS_ENVIRONMENT als test_mode bei, bis du die End-to-End-Tests abgeschlossen hast.

Wichtige Dateien und Pfade

Umgebungsvariablen

Überprüfung und Fehlerbehebung

  • Stelle sicher, dass DODO_WEBHOOK_SECRET mit 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)
  • Überprüfe die Syntax von DATABASE_URL und den Supabase-Netzwerk-Egress
  • Warte nach der Projekterstellung etwa 2–3 Minuten, bevor du den ersten Push durchführst
  • Die Redirect-URI muss https://[ref].supabase.co/auth/v1/callback sein
  • 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.
Zuletzt geändert am 31. Juli 2026