Skip to main content

GitHub Repository

Boilerplate subscription tối giản cho Next.js + Supabase + Dodo Payments

Live Demo

Khám phá bản demo đã triển khai

Tổng quan

Boilerplate sẵn sàng cho môi trường production để triển khai subscription, sử dụng Next.js 15, React 19, Supabase, Drizzle ORM và Dodo Payments. Gói này bao gồm Google OAuth, checkout subscription, xử lý webhook, database schema và dashboard cơ bản.
Nếu bạn chỉ cần route handler cho một ứng dụng hiện có, hãy xem các adaptor chuyên dụng: Adaptor Next.jsAdaptor Express.

Điều kiện tiên quyết

  • Node.js 18+ (hoặc Bun 1.0+)
  • Project Supabase (URL, Anon key, Service role key, Database URL)
  • Tài khoản Dodo Payments (API key, Webhook secret)
  • OAuth client của Google Cloud (Client ID và Secret)

Bắt đầu nhanh

1

Clone and install

2

Create Supabase project

Tạo một project Supabase và sao chép:
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • DATABASE_URL (Connection string)
3

Configure Google OAuth

Đặt redirect URI thành: https://[your-project-ref].supabase.co/auth/v1/callback trong Google Cloud, sau đó bật Google provider trong Supabase Auth bằng Client ID và Secret của bạn.
4

Configure Dodo Payments

Tạo API key và Webhook secret từ dashboard Dodo. Đặt environment thành test_mode trong quá trình phát triển.
5

Create .env.local

Không bao giờ commit secret. Sử dụng environment variables trong môi trường triển khai.
6

Provision database schema

Các bảng được tạo: users, subscriptions, payments.
7

Deploy webhook function

cURL
8

Add webhook in Dodo Payments

Đặt endpoint URL thành:
Chọn các sự kiện payment và subscription.
9

Create products and features

Trong dashboard Dodo → Products → Create Product. Bạn có thể thêm metadata:
Giao diện định giá đọc mảng features này và render động.
10

Run the dev server

Mở http://localhost:3000.

Các thành phần được bao gồm

  • Xác thực thông qua Supabase (đã cấu hình Google OAuth)
  • Checkout subscription thông qua Dodo Payments
  • Supabase Edge Function cho webhook (dodo-webhook)
  • Drizzle ORM schema và migrations
  • Dashboard với invoices, trạng thái subscription và các tính năng của plan
Giữ DODO_PAYMENTS_ENVIRONMENT ở trạng thái test_mode cho đến khi bạn hoàn tất các bài kiểm thử end-to-end.

Tệp và đường dẫn chính

Environment variables

Xác minh và khắc phục sự cố

  • Đảm bảo DODO_WEBHOOK_SECRET khớp với giá trị trong dashboard Dodo
  • Xác nhận bạn đã triển khai function dodo-webhook mới nhất
  • Xác minh tên header trong function của bạn là chính xác (Dodo-Signature)
  • Kiểm tra cú pháp DATABASE_URL và network egress của Supabase
  • Chờ khoảng 2–3 phút sau khi tạo project trước lần push đầu tiên
  • Redirect URI phải là https://[ref].supabase.co/auth/v1/callback
  • Đảm bảo giá trị tương tự trong Google Cloud và Supabase Auth provider
Giờ đây bạn đã có một scaffold SaaS subscription hoạt động với Supabase và Dodo Payments.
Repository gốc và các bước chi tiết: dodo-supabase-subscription-starter.
Lần sửa đổi cuối 21 tháng 7, 2026