Skip to main content

GitHub Repository

Boilerplate mínimo de assinaturas Next.js + Supabase + Dodo Payments

Live Demo

Explore a demo implantada

Visão geral

Um boilerplate pronto para produção para assinaturas usando Next.js 15, React 19, Supabase, Drizzle ORM e Dodo Payments. Ele inclui Google OAuth, checkout de assinaturas, tratamento de webhooks, esquema de banco de dados e um dashboard básico.
Se você precisa apenas de route handlers para um app existente, consulte os adaptadores dedicados: Adaptador Next.js e Adaptador Express.

Pré-requisitos

  • Node.js 18+ (ou Bun 1.0+)
  • Projeto do Supabase (URL, chave Anon, chave de Service role, URL do banco de dados)
  • Conta do Dodo Payments (chave de API, segredo do Webhook)
  • Cliente OAuth do Google Cloud (Client ID e Secret)

Início rápido

1

Clone and install

2

Create Supabase project

Crie um projeto do Supabase e copie:
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • DATABASE_URL (string de conexão)
3

Configure Google OAuth

Defina o URI de redirecionamento como: https://[your-project-ref].supabase.co/auth/v1/callback no Google Cloud e ative o provedor Google no Supabase Auth usando seu Client ID e Secret.
4

Configure Dodo Payments

Gere uma chave de API e um segredo de Webhook no dashboard do Dodo. Defina o ambiente como test_mode durante o desenvolvimento.
5

Create .env.local

Nunca faça commit de secrets. Use variáveis de ambiente nos ambientes de implantação.
6

Provision database schema

Tabelas criadas: users, subscriptions, payments.
7

Deploy webhook function

cURL
8

Add webhook in Dodo Payments

Defina a URL do endpoint como:
Selecione os eventos de pagamento e assinatura.
9

Create products and features

No dashboard do Dodo → Products → Create Product. Opcionalmente, adicione metadados:
A UI de preços lê este array features e o renderiza dinamicamente.
10

Run the dev server

Abra http://localhost:3000.

O que está incluído

  • Autenticação via Supabase (Google OAuth configurado)
  • Checkout de assinaturas via Dodo Payments
  • Supabase Edge Function para webhooks (dodo-webhook)
  • Esquema e migrações do Drizzle ORM
  • Dashboard com faturas, status da assinatura e recursos do plano
Mantenha DODO_PAYMENTS_ENVIRONMENT como test_mode até concluir os testes de ponta a ponta.

Arquivos e caminhos principais

Variáveis de ambiente

Verificação e solução de problemas

  • Verifique se DODO_WEBHOOK_SECRET corresponde ao valor do dashboard do Dodo
  • Confirme se você implantou a função dodo-webhook mais recente
  • Verifique se o nome do header está correto na sua função (Dodo-Signature)
  • Verifique a sintaxe de DATABASE_URL e a saída de rede do Supabase
  • Aguarde cerca de 2–3 minutos após a criação do projeto antes do primeiro push
  • O URI de redirecionamento deve ser https://[ref].supabase.co/auth/v1/callback
  • Garanta o mesmo valor no Google Cloud e no provedor do Supabase Auth
Agora você tem um SaaS de assinaturas funcional, criado com Supabase e Dodo Payments.
Repositório original e etapas detalhadas: dodo-supabase-subscription-starter.
Última modificação em 21 de julho de 2026