Repository GitHub
Boilerplate minimale per sottoscrizioni Next.js + Supabase + Dodo Payments
Demo dal vivo
Esplora la demo distribuita
Panoramica
Un boilerplate pronto per la produzione per le sottoscrizioni utilizzando Next.js 15, React 19, Supabase, Drizzle ORM e Dodo Payments. Include Google OAuth, checkout per sottoscrizioni, gestione dei webhook, schema del database e un dashboard di base.Se hai bisogno solo di gestori di route per un’app esistente, consulta gli adattatori dedicati: Next.js Adaptor e Express Adaptor.
Requisiti
- Node.js 18+ (o Bun 1.0+)
- Progetto Supabase (URL, chiave anonima, chiave di ruolo del servizio, URL del database)
- Account Dodo Payments (chiave API, segreto webhook)
- Client OAuth di Google Cloud (ID client e segreto)
Avvio rapido
1
Clona e installa
2
Crea progetto Supabase
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
Configura 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 segreto.4
Configura Dodo Payments
Genera una chiave API e un segreto webhook dal dashboard di Dodo. Imposta l’ambiente su
test_mode durante lo sviluppo.5
Crea .env.local
6
Provisiona lo schema del database
Tabelle create:
users, subscriptions, payments.7
Distribuisci la funzione webhook
cURL
8
Aggiungi webhook in Dodo Payments
Imposta l’URL dell’endpoint su:Seleziona eventi di pagamento e sottoscrizione.
9
Crea prodotti e funzionalità
Nel dashboard di Dodo → Prodotti → Crea prodotto. Facoltativamente aggiungi metadati:L’UI dei prezzi legge questo
features array e lo rende dinamicamente.10
Esegui il server di sviluppo
Cosa è incluso
- Autenticazione tramite Supabase (Google OAuth configurato)
- Checkout per sottoscrizioni tramite Dodo Payments
- Funzione Edge di Supabase per webhook (
dodo-webhook) - Schema e migrazioni Drizzle ORM
- Dashboard con fatture, stato della sottoscrizione e funzionalità del piano
File e percorsi chiave
- Funzione Edge
- Route Next.js
- Database (Drizzle)
Variabili di ambiente
Supabase
Supabase
Dodo Payments
Dodo Payments
Google OAuth
Google OAuth
Verifica e risoluzione dei problemi
Firma webhook non valida (401)
Firma webhook non valida (401)
- Assicurati che
DODO_WEBHOOK_SECRETcorrisponda al valore del dashboard di Dodo - Conferma di aver distribuito l’ultima
dodo-webhookfunzione - Verifica che il nome dell’intestazione sia corretto nella tua funzione (Dodo-Signature)
Il push del database fallisce
Il push del database fallisce
- Controlla la sintassi di
DATABASE_URLe l’egress della rete Supabase - Aspetta ~2–3 minuti dopo la creazione del progetto prima del primo push
Mismatch del reindirizzamento OAuth
Mismatch del reindirizzamento OAuth
- 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 un SaaS per sottoscrizioni funzionante scaffolato con Supabase e Dodo Payments.
Repository originale e passaggi dettagliati: dodo-supabase-subscription-starter.