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...
],
}
priceAnchoris optional - when set, shows a crossed-out "original" priceisFeatured: truehighlights the plan as "Most Popular"priceIdvalues 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/.