الوثائق

StartFast Pro

StartFast Pro هو قالب Next.js 15 مميز وجاهز للإنتاج مع المصادقة، المدفوعات، الفرق، التدويل، التحليلات، المدونة، ونظام UI نظيف — كل شيء معد مسبقاً.

ستساعدك هذه الوثائق على البدء بسرعة وتخصيص StartFast Pro لمنتج SaaS الخاص بك.

ما تحصل عليه

  • Next.js 15 App Router مع React 19 ومكونات الخادم
  • مصادقة Better Auth (بريد إلكتروني، Google، GitHub OAuth)
  • قاعدة بيانات PostgreSQL مع Drizzle ORM
  • مدفوعات Stripe مع اشتراكات و Webhooks
  • إرسال البريد الإلكتروني عبر Resend
  • التدويل مع next-intl (7 لغات)
  • الفرق و RBAC مع المنظمات والأدوار والصلاحيات
  • تحليلات مع تكامل PostHog
  • نظام مدونة مع Markdown و SEO ووقت القراءة
  • لوحة تحكم إدارية للمستخدمين والطلبات والتحليلات والمحتوى
  • اختبارات E2E مع Playwright
  • TypeScript مع أمان الأنواع من طرف إلى طرف

بداية سريعة

1استنساخ المستودع
git clone https://github.com/Harries/startfast-pro.git my-saas
2تثبيت التبعيات
cd my-saas && npm install
3تكوين البيئة
cp .env.example .env.local
4إعداد قاعدة البيانات
npm run db:push
5بدء التطوير
npm run dev

افتح http://localhost:3000

متغيرات البيئة

انسخ .env.example إلى .env.local وقم بالتكوين:

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME=StartFast Pro

# Database (Postgres)
DATABASE_URL=postgresql://username:password@localhost:5432/startfast_pro

# Authentication (Better-Auth)
BETTER_AUTH_SECRET=your-secret-key-at-least-32-characters
BETTER_AUTH_URL=http://localhost:3000

# Email (Resend)
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

# Stripe
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx

# Optional: Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# Optional: GitHub OAuth
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

# Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com

# Default Locale
NEXT_PUBLIC_DEFAULT_LOCALE=en

إعداد قاعدة البيانات

StartFast Pro يستخدم PostgreSQL مع Drizzle ORM. نوصي باستخدام Neon لـ PostgreSQL بدون خادم.

  1. 1.إنشاء قاعدة بيانات PostgreSQL (محلية أو Neon)
  2. 2.تعيين DATABASE_URL في .env.local
  3. 3.تشغيل npm run db:push لدفع المخطط إلى قاعدة البيانات
  4. 4.استخدام npm run db:studio لعرض/تحرير البيانات مع Drizzle Studio
  5. 5.استخدام npm run db:generate لإنشاء الترحيلات

Schema: مخطط قاعدة البيانات معرف في src/db/schema.ts باستخدام نهج TypeScript-first من Drizzle. عميل DB يتم تصديره من src/db/index.ts.

المصادقة

StartFast Pro يستخدم Better Auth مع محول Drizzle للمصادقة. يدعم البريد/كلمة المرور و OAuth الاجتماعي.

  1. 1.تعيين BETTER_AUTH_SECRET (32 حرفاً على الأقل)
  2. 2.تعيين BETTER_AUTH_URL بعنوان تطبيقك
  3. 3.(اختياري) تكوين Google OAuth: GOOGLE_CLIENT_ID و GOOGLE_CLIENT_SECRET
  4. 4.(اختياري) تكوين GitHub OAuth: GITHUB_CLIENT_ID و GITHUB_CLIENT_SECRET

Tip: إعداد المصادقة في src/lib/auth.ts (الخادم) و src/lib/auth-client.ts (العميل). تنتهي الجلسات بعد 7 أيام افتراضياً.

مدفوعات Stripe

StartFast Pro يدعم اشتراكات Stripe مع معالجة Webhooks.

  1. 1.احصل على مفاتيح API من Stripe Dashboard → API Keys
  2. 2.تعيين STRIPE_SECRET_KEY، NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
  3. 3.إنشاء نقطة نهاية webhook في https://your-domain.com/api/webhook/stripe
  4. 4.نسخ سر توقيع webhook إلى STRIPE_WEBHOOK_SECRET

Tip: للاختبار المحلي، استخدم stripe listen --forward-to localhost:3000/api/webhook/stripe

إعداد البريد الإلكتروني

StartFast Pro يستخدم Resend للبريد الإلكتروني المعاملاتي.

  1. 1.إنشاء حساب Resend
  2. 2.الحصول على مفتاح API وتعيين RESEND_API_KEY
  3. 3.تعيين EMAIL_FROM بعنوان المرسل الموثق
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

التدويل

StartFast Pro يتضمن دعم متعدد اللغات عبر next-intl مع 7 لغات مدمجة.

  • الإنجليزية (en)
  • الصينية (zh)
  • اليابانية (ja)
  • الكورية (ko)
  • الألمانية (de)
  • الفرنسية (fr)
  • الإسبانية (es)

ملفات الترجمة موجودة في src/i18n/messages/. تعيين اللغة الافتراضية:

NEXT_PUBLIC_DEFAULT_LOCALE=en

التحليلات

StartFast Pro يتكامل مع PostHog لتحليلات المنتج. يتضمن متتبعات أحداث معدة مسبقاً للتسجيلات والاشتراكات وإجراءات الفريق والمزيد.

  1. 1.إنشاء حساب PostHog
  2. 2.تعيين NEXT_PUBLIC_POSTHOG_KEY و NEXT_PUBLIC_POSTHOG_HOST

Tip: مساعدات التحليلات في src/lib/analytics.ts. استخدم analytics.signUp()، analytics.subscriptionStarted()، إلخ.

الفرق والأدوار

StartFast Pro يتضمن نظام كامل للمنظمات والتحكم في الوصول بناءً على الأدوار (RBAC).

الأدوار

  • المالك — وصول كامل. يمكنه نقل الملكية.
  • المسؤول — إدارة الأعضاء والإعدادات ومعظم الموارد.
  • العضو — إنشاء وتحرير المحتوى. وصول محدود للإعدادات.
  • المشاهد — وصول للقراءة فقط.

Tip: الصلاحيات معرفة في src/lib/permissions.ts. استخدم hasPermission(role, permission) للتحقق من الوصول.

النشر

انشر على Vercel في دقائق:

  1. 1.ادفع الكود إلى GitHub
  2. 2.استورد المستودع على Vercel
  3. 3.أضف جميع متغيرات البيئة
  4. 4.انشر!

Important: بعد النشر، حدّث عنوان webhook الخاص بـ Stripe إلى نطاق الإنتاج.

الدعم

تحتاج مساعدة؟ تواصل معنا: