GitHub Repository
Minimal Next.js + Supabase + Dodo Payments boilerplate för prenumerationer
Live Demo
Utforska den distribuerade demon
Översikt
En produktionsklar boilerplate för prenumerationer med Next.js 15, React 19, Supabase, Drizzle ORM och Dodo Payments. Den levereras med Google OAuth, checkout för prenumerationer, webhook-hantering, databasschema och en grundläggande dashboard.Om du endast behöver route handlers för en befintlig app kan du se de dedikerade adaptrarna: Next.js Adaptor och Express Adaptor.
Förutsättningar
- Node.js 18+ (eller Bun 1.0+)
- Supabase-projekt (URL, Anon key, Service role key, Database URL)
- Dodo Payments-konto (API key, Webhook secret)
- Google Cloud OAuth-klient (Client ID och Secret)
Snabbstart
1
Clone and install
2
Create Supabase project
Skapa ett Supabase-projekt och kopiera:
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- SUPABASE_SERVICE_ROLE_KEY
- DATABASE_URL (Connection string)
3
Configure Google OAuth
Ange redirect-URI:n till:
https://[your-project-ref].supabase.co/auth/v1/callback i Google Cloud och aktivera sedan Google-provider i Supabase Auth med ditt Client ID och Secret.4
Configure Dodo Payments
Generera en API key och Webhook secret från dashboarden för Dodo. Ange miljön till
test_mode under utveckling.5
Create .env.local
6
Provision database schema
Skapade tabeller:
users, subscriptions, payments.7
Deploy webhook function
cURL
8
Add webhook in Dodo Payments
Ange endpoint-URL till:Välj betalnings- och prenumerationshändelser.
9
Create products and features
I dashboarden för Dodo → Products → Create Product. Lägg eventuellt till metadata:Prisgränssnittet läser denna
features-array och återger den dynamiskt.10
Run the dev server
Detta ingår
- Autentisering via Supabase (Google OAuth konfigurerat)
- Checkout för prenumerationer via Dodo Payments
- Supabase Edge Function för webhooks (
dodo-webhook) - Drizzle ORM-schema och migreringar
- Dashboard med fakturor, prenumerationsstatus och planfunktioner
Viktiga filer och sökvägar
- Edge Function
- Next.js routes
- Database (Drizzle)
Miljövariabler
Supabase
Supabase
Dodo Payments
Dodo Payments
Google OAuth
Google OAuth
Verifiering och felsökning
Webhook signature invalid (401)
Webhook signature invalid (401)
- Kontrollera att
DODO_WEBHOOK_SECRETmatchar värdet från dashboarden för Dodo - Bekräfta att du distribuerade den senaste funktionen
dodo-webhook - Kontrollera att headernamnet är korrekt i din funktion (Dodo-Signature)
Database push fails
Database push fails
- Kontrollera
DATABASE_URL-syntaxen och Supabase-nätverkets utgående trafik - Vänta cirka 2–3 minuter efter att projektet skapats innan den första pushen
OAuth redirect mismatch
OAuth redirect mismatch
- Redirect-URI:n måste vara
https://[ref].supabase.co/auth/v1/callback - Kontrollera att samma URI används i Google Cloud och Supabase Auth-provider
Nu har du en fungerande SaaS-prenumerationsgrund byggd med Supabase och Dodo Payments.
Ursprungligt repository och detaljerade steg: dodo-supabase-subscription-starter.