Documentation

StartFast Pro

StartFast Pro est un template premium Next.js 15 prêt pour la production avec authentification, paiements, équipes, i18n, analytiques, blog et un système UI propre — tout préconfiguré.

Cette documentation vous aidera à démarrer rapidement et à personnaliser StartFast Pro pour votre produit SaaS.

Ce que vous obtenez

  • Next.js 15 App Router avec React 19 et composants serveur
  • Authentification avec Better Auth (Email, Google, GitHub OAuth)
  • Base de données PostgreSQL avec Drizzle ORM
  • Paiements Stripe avec abonnements et webhooks
  • Envoi d'emails via Resend
  • Internationalisation avec next-intl (7 langues)
  • Équipes et RBAC avec organisations, rôles et permissions
  • Analytiques avec intégration PostHog
  • Système de blog avec Markdown, SEO et temps de lecture
  • Tableau de bord admin pour utilisateurs, commandes, analytiques et contenu
  • Tests E2E avec Playwright
  • TypeScript avec sécurité des types de bout en bout

Démarrage rapide

1Cloner le dépôt
git clone https://github.com/Harries/startfast-pro.git my-saas
2Installer les dépendances
cd my-saas && npm install
3Configurer l'environnement
cp .env.example .env.local
4Configurer la base de données
npm run db:push
5Lancer le développement
npm run dev

Ouvrir http://localhost:3000

Variables d'environnement

Copiez .env.example vers .env.local et configurez :

# 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

Configuration de la base de données

StartFast Pro utilise PostgreSQL avec Drizzle ORM. Nous recommandons Neon pour PostgreSQL serverless.

  1. 1.Créer une base de données PostgreSQL (locale ou Neon)
  2. 2.Configurer DATABASE_URL dans votre .env.local
  3. 3.Exécuter npm run db:push pour pousser le schéma vers la base de données
  4. 4.Utiliser npm run db:studio pour voir/éditer les données avec Drizzle Studio
  5. 5.Utiliser npm run db:generate pour générer les migrations

Schema: Le schéma de la base de données est défini dans src/db/schema.ts en utilisant l'approche TypeScript-first de Drizzle. Le client DB est exporté depuis src/db/index.ts.

Authentification

StartFast Pro utilise Better Auth avec l'adaptateur Drizzle pour l'authentification. Supporte email/mot de passe et OAuth social.

  1. 1.Configurer BETTER_AUTH_SECRET (au moins 32 caractères)
  2. 2.Configurer BETTER_AUTH_URL avec l'URL de votre app
  3. 3.(Optionnel) Configurer Google OAuth : GOOGLE_CLIENT_ID et GOOGLE_CLIENT_SECRET
  4. 4.(Optionnel) Configurer GitHub OAuth : GITHUB_CLIENT_ID et GITHUB_CLIENT_SECRET

Tip: La config d'auth est dans src/lib/auth.ts (serveur) et src/lib/auth-client.ts (client). Les sessions expirent après 7 jours par défaut.

Paiements Stripe

StartFast Pro supporte les abonnements Stripe avec gestion des webhooks.

  1. 1.Obtenir vos clés API depuis Stripe Dashboard → API Keys
  2. 2.Configurer STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
  3. 3.Créer un endpoint webhook à https://your-domain.com/api/webhook/stripe
  4. 4.Copier le secret de signature du webhook dans STRIPE_WEBHOOK_SECRET

Tip: Pour les tests locaux, utilisez stripe listen --forward-to localhost:3000/api/webhook/stripe

Configuration email

StartFast Pro utilise Resend pour les emails transactionnels.

  1. 1.Créer un compte Resend
  2. 2.Obtenir votre clé API et configurer RESEND_API_KEY
  3. 3.Configurer EMAIL_FROM avec votre adresse d'expéditeur vérifiée
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

Internationalisation

StartFast Pro inclut le support multi-langues via next-intl avec 7 langues intégrées.

  • Anglais (en)
  • Chinois (zh)
  • Japonais (ja)
  • Coréen (ko)
  • Allemand (de)
  • Français (fr)
  • Espagnol (es)

Les fichiers de traduction sont dans src/i18n/messages/. Configurez la locale par défaut avec :

NEXT_PUBLIC_DEFAULT_LOCALE=en

Analytiques

StartFast Pro s'intègre avec PostHog pour les analytiques produit. Des traqueurs d'événements préconfigurés sont inclus pour les inscriptions, abonnements, actions d'équipe et plus.

  1. 1.Créer un compte PostHog
  2. 2.Configurer NEXT_PUBLIC_POSTHOG_KEY et NEXT_PUBLIC_POSTHOG_HOST

Tip: Les helpers d'analytiques sont dans src/lib/analytics.ts. Utilisez analytics.signUp(), analytics.subscriptionStarted(), etc.

Équipes et rôles

StartFast Pro inclut un système complet d'organisation et de contrôle d'accès basé sur les rôles (RBAC).

Rôles

  • Propriétaire — Accès complet. Peut transférer la propriété.
  • Admin — Gérer les membres, paramètres et la plupart des ressources.
  • Membre — Créer et éditer du contenu. Accès limité aux paramètres.
  • Lecteur — Accès en lecture seule.

Tip: Les permissions sont définies dans src/lib/permissions.ts. Utilisez hasPermission(role, permission) pour vérifier l'accès.

Déploiement

Déployez sur Vercel en quelques minutes :

  1. 1.Poussez votre code sur GitHub
  2. 2.Importez le repo sur Vercel
  3. 3.Ajoutez toutes les variables d'environnement
  4. 4.Déployez !

Important: Après le déploiement, mettez à jour votre URL de webhook Stripe vers votre domaine de production.

Support

Besoin d'aide ? Contactez-nous :