ScaleRocket/Web

Configuration

Configuration du site, plans tarifaires, variables d'environnement et checklist de personnalisation.

Vue d'ensemble

ScaleRocket centralise la configuration dans packages/config/ et les variables d'environnement. Cette page couvre toutes les options configurables.

site.ts

Situé dans packages/config/src/site.ts. C'est votre source unique de vérité pour les paramètres globaux du site.

export const siteConfig = {
  name: "ScaleRocket",                              // App name everywhere
  description: "Ship your SaaS in days",         // Default meta description

  urls: {
    web: "https://scalerocket.dev",                 // Marketing site URL
    app: "https://app.scalerocket.dev",             // Dashboard URL
    ops: "https://admin.scalerocket.dev",           // Admin panel URL
  },

  keywords: ["saas", "boilerplate", "nextjs"],   // SEO keywords
  author: "Your Name",                           // Author name for meta tags
  twitter: "@scalerocket",                          // Twitter handle
  github: "https://github.com/scalerocket",         // GitHub URL
  supportEmail: "support@scalerocket.dev",          // Support contact email

  company: {
    name: "ScaleRocket Inc.",                       // Legal entity name
    address: "123 Main St, City, Country",       // Company address
    siret: "123 456 789 00001",                  // SIRET number (if applicable)
  },
};

Tous les champs sont importés dans les applications :

import { siteConfig } from "@saas/config";

<title>{siteConfig.name}</title>
<a href={siteConfig.github}>GitHub</a>

pricing.ts

Situé dans packages/config/src/pricing.ts. Définit vos plans d'abonnement.

export const plans = [
  {
    id: "free",
    name: "Free",
    description: "Get started for free",
    price: { monthly: 0, yearly: 0 },
    stripePriceId: { monthly: null, yearly: null },
    features: [
      "10 credits/month",
      "Basic features",
      "Community support",
    ],
    limits: {
      credits: 10,
    },
    popular: false,
  },
  {
    id: "starter",
    name: "Starter",
    description: "For individuals and small projects",
    price: { monthly: 9, yearly: 90 },
    stripePriceId: {
      monthly: "price_starter_monthly_xxx",   // Replace with your Stripe Price ID
      yearly: "price_starter_yearly_xxx",
    },
    features: [
      "100 credits/month",
      "All features",
      "Email support",
    ],
    limits: {
      credits: 100,
    },
    popular: false,
  },
  {
    id: "pro",
    name: "Pro",
    description: "For growing businesses",
    price: { monthly: 29, yearly: 290 },
    stripePriceId: {
      monthly: "price_pro_monthly_xxx",
      yearly: "price_pro_yearly_xxx",
    },
    features: [
      "1,000 credits/month",
      "All features",
      "Priority support",
      "API access",
    ],
    limits: {
      credits: 1000,
    },
    popular: true,    // Visually highlighted on pricing page
  },
];

Configurer les Stripe Price IDs

  1. Allez sur Stripe Dashboard > Products.
  2. Créez un produit pour chaque plan.
  3. Ajoutez des prix mensuels et annuels.
  4. Copiez les Price IDs (ex. price_1Abc...) dans pricing.ts.

Variables d'environnement

apps/web (Next.js Marketing)

# .env.local
NEXT_PUBLIC_APP_URL=https://app.scalerocket.dev

apps/app (Vite Dashboard)

# .env.local
VITE_SUPABASE_URL=https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY=eyJ...
VITE_WEB_URL=https://scalerocket.dev

apps/ops (Vite Admin)

# .env.local
VITE_SUPABASE_URL=https://xxx.supabase.co
VITE_SUPABASE_ANON_KEY=eyJ...
VITE_SUPABASE_SERVICE_ROLE_KEY=eyJ...   # Only in admin app!

Supabase Edge Functions

# supabase/.env (local) or supabase secrets (production)
STRIPE_SECRET_KEY=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
RESEND_API_KEY=re_xxx
SITE_URL=https://scalerocket.dev
APP_URL=https://app.scalerocket.dev

Publiques vs Secrètes

VariablePubliqueUtilisée dans
SUPABASE_URLOuiToutes les applications
SUPABASE_ANON_KEYOuiToutes les applications
SUPABASE_SERVICE_ROLE_KEYNonApplication admin, Edge Functions uniquement
STRIPE_SECRET_KEYNonEdge Functions uniquement
STRIPE_WEBHOOK_SECRETNonEdge Functions uniquement
RESEND_API_KEYNonEdge Functions uniquement

Checklist de personnalisation

Avant le lancement, mettez à jour ces éléments :

  • packages/config/src/site.ts -- Nom, URLs, description, liens sociaux
  • packages/config/src/pricing.ts -- Plans, prix, Stripe Price IDs, fonctionnalités
  • packages/ui/src/globals.css -- Couleurs de marque, border radius
  • apps/web/public/ -- Favicon, image OG, logo
  • Fichiers .env.local -- Toutes les variables d'environnement par application
  • Secrets Supabase -- Clés API Stripe, Resend
  • Supabase Auth -- Activer/désactiver les fournisseurs OAuth, personnaliser les templates d'e-mails
  • Produits Stripe -- Créer les produits et prix, configurer l'endpoint webhook
  • Resend -- Vérifier le domaine d'envoi, mettre à jour l'adresse d'expédition dans packages/emails/src/send.ts
  • Liste blanche admin -- Mettre à jour ADMIN_EMAILS dans apps/ops/src/lib/auth.ts
  • Pages légales -- Mettre à jour la politique de confidentialité et les conditions d'utilisation

Fini ? Marquez cette page comme terminée.

On this page