Skip to main content

GitHub Repository

최소 구성의 Next.js + Supabase + Dodo Payments 구독 보일러플레이트

Live Demo

배포된 데모 살펴보기

개요

Next.js 15, React 19, Supabase, Drizzle ORM 및 Dodo Payments을 사용한 프로덕션 준비가 완료된 구독 보일러플레이트입니다. Google OAuth, 구독 결제, 웹훅 처리, 데이터베이스 스키마 및 기본 대시보드가 기본으로 제공됩니다.
기존 앱에 라우트 핸들러만 필요한 경우 전용 adaptor를 참조하세요: Next.js AdaptorExpress Adaptor.

사전 요구 사항

  • Node.js 18+ (또는 Bun 1.0+)
  • Supabase 프로젝트 (URL, Anon key, Service role key, Database URL)
  • Dodo Payments 계정 (API key, Webhook secret)
  • Google Cloud OAuth client (Client ID 및 Secret)

빠른 시작

1

Clone and install

2

Create Supabase project

Supabase 프로젝트를 생성하고 다음 항목을 복사합니다:
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • DATABASE_URL (Connection string)
3

Configure Google OAuth

Google Cloud에서 redirect URI를 https://[your-project-ref].supabase.co/auth/v1/callback로 설정한 다음, Client ID와 Secret을 사용하여 Supabase Auth에서 Google provider를 활성화합니다.
4

Configure Dodo Payments

Dodo 대시보드에서 API key와 Webhook secret을 생성합니다. 개발 중에는 environment를 test_mode로 설정합니다.
5

Create .env.local

secret을 커밋하지 마세요. 배포 환경에서는 environment variables를 사용합니다.
6

Provision database schema

생성된 테이블: users, subscriptions, payments.
7

Deploy webhook function

cURL
8

Add webhook in Dodo Payments

endpoint URL을 다음과 같이 설정합니다:
payment 및 subscription 이벤트를 선택합니다.
9

Create products and features

Dodo 대시보드 → Products → Create Product로 이동합니다. 필요에 따라 metadata를 추가합니다:
pricing UI는 이 features 배열을 읽고 동적으로 렌더링합니다.
10

Run the dev server

http://localhost:3000을 엽니다.

포함된 항목

  • Supabase를 통한 인증 (Google OAuth 구성 완료)
  • Dodo Payments를 통한 구독 결제
  • 웹훅을 위한 Supabase Edge Function (dodo-webhook)
  • Drizzle ORM 스키마 및 migrations
  • invoices, subscription status 및 plan features가 포함된 대시보드
엔드투엔드 테스트를 완료할 때까지 DODO_PAYMENTS_ENVIRONMENTtest_mode로 유지합니다.

주요 파일 및 경로

환경 변수

검증 및 문제 해결

  • DODO_WEBHOOK_SECRET가 Dodo 대시보드의 값과 일치하는지 확인합니다
  • 최신 dodo-webhook function을 배포했는지 확인합니다
  • function에서 header name이 올바른지 확인합니다 (Dodo-Signature)
  • DATABASE_URL syntax 및 Supabase network egress를 확인합니다
  • 프로젝트 생성 후 첫 push를 수행하기 전에 약 2~3분 정도 기다립니다
  • Redirect URI는 https://[ref].supabase.co/auth/v1/callback여야 합니다
  • Google Cloud와 Supabase Auth provider에서 동일한 URI를 사용하는지 확인합니다
이제 Supabase와 Dodo Payments로 구축된 구독 SaaS 스캐폴드를 사용할 수 있습니다.
원본 repository 및 자세한 단계: dodo-supabase-subscription-starter.
마지막 수정일 2026년 7월 25일