GitHub Repository
Boilerplate minimale per abbonamenti Next.js + Supabase + Dodo Payments
Live Demo
Esplora la demo distribuita
Panoramica
Un boilerplate pronto per la produzione per gli abbonamenti che utilizza Next.js 15, React 19, Supabase, Drizzle ORM e Dodo Payments. Include Google OAuth, il checkout degli abbonamenti, la gestione dei webhook, lo schema del database e una dashboard di base.Se ti servono solo i route handler per un’app esistente, consulta gli adaptor dedicati: Adaptor Next.js e Adaptor Express.
Prerequisiti
- Node.js 18+ (o Bun 1.0+)
- Progetto Supabase (URL, chiave Anon, chiave del ruolo Service, URL del database)
- Account Dodo Payments (chiave API, segreto del Webhook)
- Client OAuth Google Cloud (ID client e segreto)
Avvio rapido
1
Clone and install
2
Create Supabase project
Crea un progetto Supabase e copia:
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- SUPABASE_SERVICE_ROLE_KEY
- DATABASE_URL (stringa di connessione)
3
Configure Google OAuth
Imposta l’URI di reindirizzamento su:
https://[your-project-ref].supabase.co/auth/v1/callback in Google Cloud, quindi abilita il provider Google in Supabase Auth utilizzando il tuo ID client e il tuo segreto.4
Configure Dodo Payments
Genera una chiave API e un segreto del Webhook dalla dashboard di Dodo. Imposta l’ambiente su
test_mode durante lo sviluppo.5
Create .env.local
6
Provision database schema
Tabelle create:
users, subscriptions, payments.7
Deploy webhook function
cURL
8
Add webhook in Dodo Payments
Imposta l’URL dell’endpoint su:Seleziona gli eventi di pagamento e di abbonamento.
9
Create products and features
Nella dashboard di Dodo → Products → Create Product. Facoltativamente, aggiungi i metadati:L’interfaccia dei prezzi legge questo array
features e lo visualizza dinamicamente.10
Run the dev server
Cosa è incluso
- Autenticazione tramite Supabase (Google OAuth configurato)
- Checkout degli abbonamenti tramite Dodo Payments
- Supabase Edge Function per i webhook (
dodo-webhook) - Schema e migrazioni di Drizzle ORM
- Dashboard con fatture, stato dell’abbonamento e funzionalità del piano
File e percorsi principali
- Edge Function
- Next.js routes
- Database (Drizzle)
Variabili d’ambiente
Supabase
Supabase
Dodo Payments
Dodo Payments
Google OAuth
Google OAuth
Verifica e risoluzione dei problemi
Webhook signature invalid (401)
Webhook signature invalid (401)
- Assicurati che
DODO_WEBHOOK_SECRETcorrisponda al valore nella dashboard di Dodo - Conferma di aver distribuito la funzione
dodo-webhookpiù recente - Verifica che il nome dell’header sia corretto nella tua funzione (Dodo-Signature)
Database push fails
Database push fails
- Controlla la sintassi di
DATABASE_URLe l’uscita di rete di Supabase - Attendi circa 2–3 minuti dopo la creazione del progetto prima del primo push
OAuth redirect mismatch
OAuth redirect mismatch
- L’URI di reindirizzamento deve essere
https://[ref].supabase.co/auth/v1/callback - Assicurati che sia lo stesso in Google Cloud e nel provider Supabase Auth
Ora hai uno scheletro SaaS per abbonamenti funzionante, realizzato con Supabase e Dodo Payments.
Repository originale e passaggi dettagliati: dodo-supabase-subscription-starter.