GitHub Repository
قالب اشتراكات بسيط لـ Next.js + Supabase + Dodo Payments
Live Demo
استكشف العرض التجريبي المنشور
نظرة عامة
قالب جاهز للاستخدام في بيئة الإنتاج للاشتراكات باستخدام Next.js 15 وReact 19 وSupabase وDrizzle ORM وDodo Payments. يتضمن Google OAuth، وإتمام الدفع للاشتراكات، ومعالجة webhook، ومخطط قاعدة البيانات، ولوحة تحكم أساسية.إذا كنت تحتاج إلى معالجات المسارات فقط لتطبيق موجود، فراجع أدوات التكييف المخصصة: أداة تكييف Next.js وأداة تكييف Express.
المتطلبات الأساسية
- Node.js 18+ (أو Bun 1.0+)
- مشروع Supabase (URL، ومفتاح Anon، ومفتاح Service role، وURL قاعدة البيانات)
- حساب Dodo Payments (مفتاح API، وسر Webhook)
- عميل Google Cloud OAuth (معرّف العميل والسر)
البدء السريع
1
Clone and install
2
Create Supabase project
أنشئ مشروع Supabase وانسخ ما يلي:
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- SUPABASE_SERVICE_ROLE_KEY
- DATABASE_URL (سلسلة الاتصال)
3
Configure Google OAuth
اضبط URI إعادة التوجيه على:
https://[your-project-ref].supabase.co/auth/v1/callback في Google Cloud، ثم فعّل موفّر Google في Supabase Auth باستخدام معرّف العميل والسر.4
Configure Dodo Payments
أنشئ مفتاح API وسر Webhook من لوحة تحكم Dodo. اضبط البيئة على
test_mode أثناء التطوير.5
Create .env.local
6
Provision database schema
تم إنشاء الجداول:
users وsubscriptions وpayments.7
Deploy webhook function
cURL
8
Add webhook in Dodo Payments
اضبط عنوان endpoint على:حدّد أحداث الدفع والاشتراك.
9
Create products and features
في لوحة تحكم Dodo، انتقل إلى Products → Create Product. يمكنك اختياريًا إضافة بيانات وصفية:تقرأ واجهة التسعير مصفوفة
features هذه وتعرضها ديناميكيًا.10
Run the dev server
ما يتضمنه القالب
- المصادقة عبر Supabase (تم إعداد Google OAuth)
- إتمام الدفع للاشتراكات عبر Dodo Payments
- Supabase Edge Function لمعالجة webhooks (
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-webhook - تحقّق من صحة اسم الرأس في دالتك (Dodo-Signature)
Database push fails
Database push fails
- تحقّق من بنية
DATABASE_URLومن خروج شبكة Supabase - انتظر نحو دقيقتين إلى 3 دقائق بعد إنشاء المشروع قبل أول push
OAuth redirect mismatch
OAuth redirect mismatch
- يجب أن يكون URI إعادة التوجيه هو
https://[ref].supabase.co/auth/v1/callback - تأكد من استخدام القيمة نفسها في Google Cloud وموفّر Supabase Auth
أصبح لديك الآن هيكل SaaS عملي للاشتراكات مبني باستخدام Supabase وDodo Payments.
المستودع الأصلي والخطوات التفصيلية: dodo-supabase-subscription-starter.