Skip to main content

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

Non eseguire mai il commit dei segreti. Usa le variabili d’ambiente negli ambienti di deployment.
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

Apri http://localhost:3000.

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
Mantieni DODO_PAYMENTS_ENVIRONMENT come test_mode finché non completi i test end-to-end.

File e percorsi principali

Variabili d’ambiente

Verifica e risoluzione dei problemi

  • Assicurati che DODO_WEBHOOK_SECRET corrisponda al valore nella dashboard di Dodo
  • Conferma di aver distribuito la funzione dodo-webhook più recente
  • Verifica che il nome dell’header sia corretto nella tua funzione (Dodo-Signature)
  • Controlla la sintassi di DATABASE_URL e l’uscita di rete di Supabase
  • Attendi circa 2–3 minuti dopo la creazione del progetto prima del primo push
  • 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.
Ultima modifica il 31 luglio 2026