Template SaaS en Next.js para productos que necesitan el estado de billing sincronizado desde Commet a su propia base de datos. Usa los webhooks de Commet como fuente de verdad para acceso del cliente, estado de suscripción, pagos, uso e historial local de eventos.
Stack: Next.js 16, Better Auth, Drizzle ORM, PostgreSQL, Commet SDK
Inicio Rápido
git clone https://github.com/commet-labs/commet.git
cd commet/examples/webhooks
pnpm install
pnpm devQué Incluye
- Dos planes públicos con precios mensuales y anuales
- Tres funcionalidades medidas: Llamadas API, Almacenamiento, Envíos de Email
- Flujo de checkout y activación de suscripción
- Endpoint firmado para recibir eventos de Commet
- Registro idempotente de eventos antes de correr handlers críticos
- Sincronización de estado desde
customer.state_changed - Actualizaciones de uso desde
usage.recorded - Feed local para inspeccionar webhooks recibidos
- Dashboard con plan, estado, renovación y acceso por funcionalidades
Archivos Clave
app/api/webhooks/commet/route.ts— Endpoint firmado con log de eventos e idempotencialib/billing/sync.ts— Sincronización del snapshot de estado del clientelib/billing/usage.ts— Persistencia de eventos de usolib/webhooks/events.ts— Registro local de eventos webhookapp/(dashboard)/dashboard/events/page.tsx— Feed de webhooksapp/(dashboard)/dashboard/page.tsx— Vista general del estado de billingapp/pricing/page.tsx— Precios dinámicos desde planes de Commet
Setup en Producción
- Agregar
COMMET_API_KEYde tu organización sandbox o live de Commet - Agregar
COMMET_WEBHOOK_SECRETdesde el endpoint de webhook en Commet - Configurar
NEXT_PUBLIC_APP_URLcon la URL deployada - Registrar
/api/webhooks/commetcomo endpoint de webhook en Commet - Suscribir el endpoint a eventos de customer, subscription, payment, invoice, checkout y usage
Más Información
Cloná el repo para arrancar, probá la demo en vivo o mirá el código en GitHub.
