SecureStartKit

Configuration

Customize your SaaS through the central config file.

config.ts

The single source of truth for all customization. Open config.ts and modify these sections:

App Settings

appName: 'YourSaaS',
appDescription: 'Your one-line description for SEO',
domainName: 'yoursaas.com',

Billing Plans

billing: {
  provider: 'stripe',
  plans: [
    {
      name: 'Starter',
      description: 'Perfect for side projects',
      price: { monthly: 9, yearly: 90 },
      priceAnchor: { monthly: 19, yearly: 190 }, // Strikethrough price
      priceId: {
        monthly: 'price_xxx', // From Stripe Dashboard
        yearly: 'price_xxx',
      },
      features: ['Feature 1', 'Feature 2'],
    },
    // Add more plans...
  ],
}
  • priceAnchor is optional - when set, shows a crossed-out "original" price
  • isFeatured: true highlights the plan as "Most Popular"
  • priceId values come from your Stripe Dashboard

Appearance

appearance: {
  defaultTheme: 'system', // 'light' | 'dark' | 'system'
  allowThemeToggle: true,  // Show/hide toggle in header
  primaryColor: '#6366f1',
}

Auth Providers

auth: {
  providers: ['email', 'google'],
}

Enable Google OAuth by configuring it in your Supabase project settings.

Admin Panel

admin: {
  enabled: true,
  superAdminEmails: ['you@yourdomain.com'],
}

Only users with emails in superAdminEmails can access /admin.

SEO

seo: {
  defaultTitle: 'YourSaaS - Build faster with security built-in',
  titleTemplate: '%s | YourSaaS',
  description: 'A production-ready template.',
  keywords: ['saas', 'template', 'nextjs'],
  ogImage: '/og.png',
  twitterHandle: '@yoursaas',
}

Changelog

changelog: {
  enabled: true,
}

When enabled, a /changelog page appears showing MDX files from content/changelog/.