GitHub Repository
最小構成の Next.js + Supabase + Dodo Payments サブスクリプション用ボイラープレート
Live Demo
デプロイ済みのデモを確認
概要
Next.js 15、React 19、Supabase、Drizzle ORM、Dodo Payments を使用した、本番環境対応のサブスクリプション用ボイラープレートです。Google OAuth、サブスクリプションのチェックアウト、webhook 処理、データベーススキーマ、基本的なダッシュボードがあらかじめ含まれています。既存のアプリにルートハンドラーだけが必要な場合は、専用のアダプターを参照してください: Next.js Adaptor および Express 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 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 でリダイレクト 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 を生成します。開発中は環境を
test_mode に設定します。5
Create .env.local
6
Provision database schema
作成されるテーブル:
users、subscriptions、payments。7
Deploy webhook function
cURL
8
Add webhook in Dodo Payments
エンドポイント URL を次に設定します:支払いおよびサブスクリプション関連のイベントを選択します。
9
Create products and features
Dodo ダッシュボード → Products → Create Product の順に選択します。必要に応じてメタデータを追加します:料金 UI はこの
features 配列を読み込み、動的にレンダリングします。10
Run the dev server
含まれる機能
- Supabase による認証(Google OAuth を設定済み)
- Dodo Payments によるサブスクリプションのチェックアウト
- webhook 用 Supabase Edge Function(
dodo-webhook) - Drizzle ORM のスキーマとマイグレーション
- 請求書、サブスクリプションのステータス、プランの機能を備えたダッシュボード
主要なファイルとパス
- Edge Function
- Next.js routes
- Database (Drizzle)
環境変数
Supabase
Supabase
Dodo Payments
Dodo Payments
Google OAuth
Google OAuth
検証とトラブルシューティング
Webhook signature invalid (401)
Webhook signature invalid (401)
DODO_WEBHOOK_SECRETが Dodo ダッシュボードの値と一致していることを確認します- 最新の
dodo-webhookfunction をデプロイしたことを確認します - function 内のヘッダー名(Dodo-Signature)が正しいことを確認します
Database push fails
Database push fails
DATABASE_URLの構文と Supabase のネットワーク egress を確認します- プロジェクト作成後、最初の push まで 2~3 分ほど待ちます
OAuth redirect mismatch
OAuth redirect mismatch
- リダイレクト URI は
https://[ref].supabase.co/auth/v1/callbackである必要があります - Google Cloud と Supabase Auth provider の両方で同じ値になっていることを確認します
これで、Supabase と Dodo Payments を使った、動作するサブスクリプション SaaS の基盤が完成しました。
元のリポジトリと詳細な手順: dodo-supabase-subscription-starter。