Skip to main content

GitHub Repository

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

Live Demo

Explora la demo implementada

Descripción general

Un boilerplate listo para producción para suscripciones que utiliza Next.js 15, React 19, Supabase, Drizzle ORM y Dodo Payments. Incluye Google OAuth, checkout de suscripciones, gestión de webhooks, esquema de base de datos y un dashboard básico.
Si solo necesitas route handlers para una aplicación existente, consulta los adaptadores específicos: adaptador de Next.js y adaptador de Express.

Requisitos previos

  • Node.js 18+ (o Bun 1.0+)
  • Proyecto de Supabase (URL, clave Anon, clave de rol de servicio, URL de la base de datos)
  • Cuenta de Dodo Payments (API key, secreto de Webhook)
  • Cliente OAuth de Google Cloud (Client ID y Secret)

Inicio rápido

1

Clone and install

2

Create Supabase project

Crea un proyecto de Supabase y copia:
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • DATABASE_URL (cadena de conexión)
3

Configure Google OAuth

Establece la URI de redirección en: https://[your-project-ref].supabase.co/auth/v1/callback en Google Cloud y, a continuación, habilita el proveedor de Google en Supabase Auth mediante tu Client ID y Secret.
4

Configure Dodo Payments

Genera una API key y un secreto de Webhook desde el dashboard de Dodo. Establece el entorno en test_mode durante el desarrollo.
5

Create .env.local

Nunca incluyas secretos en el commit. Usa variables de entorno en los entornos de implementación.
6

Provision database schema

Tablas creadas: users, subscriptions, payments.
7

Deploy webhook function

cURL
8

Add webhook in Dodo Payments

Establece la URL del endpoint en:
Selecciona los eventos de pagos y suscripciones.
9

Create products and features

En el dashboard de Dodo → Products → Create Product. Opcionalmente, añade metadatos:
La UI de precios lee este array features y lo renderiza dinámicamente.
10

Run the dev server

Abre http://localhost:3000.

Qué incluye

  • Autenticación mediante Supabase (Google OAuth configurado)
  • Checkout de suscripciones mediante Dodo Payments
  • Supabase Edge Function para webhooks (dodo-webhook)
  • Esquema y migraciones de Drizzle ORM
  • Dashboard con facturas, estado de la suscripción y funciones del plan
Mantén DODO_PAYMENTS_ENVIRONMENT como test_mode hasta completar las pruebas de extremo a extremo.

Archivos y rutas principales

Variables de entorno

Verificación y solución de problemas

  • Asegúrate de que DODO_WEBHOOK_SECRET coincida con el valor del dashboard de Dodo
  • Confirma que implementaste la función dodo-webhook más reciente
  • Verifica que el nombre del encabezado sea correcto en tu función (Dodo-Signature)
  • Comprueba la sintaxis de DATABASE_URL y la salida de red de Supabase
  • Espera aproximadamente 2–3 minutos después de crear el proyecto antes del primer push
  • La URI de redirección debe ser https://[ref].supabase.co/auth/v1/callback
  • Asegúrate de que sea la misma en Google Cloud y en el proveedor de Supabase Auth
Ahora tienes una base funcional de SaaS de suscripciones creada con Supabase y Dodo Payments.
Repositorio original y pasos detallados: dodo-supabase-subscription-starter.
Última modificación el 31 de julio de 2026