How to use this page
- Pick the scenario closest to your product.
- Copy the starting toggles into
.env.local. - Fill the minimum env vars for the services you need.
- Connect the relevant providers through Services setup.
- Run
npm run env:check, then continue to Launch checklists.
Pick the closest preset
| Preset | Main focus | Most important toggles | Minimum services |
|---|---|---|---|
| Waitlist first | Validate demand and audience | Auth off, Waitlist on, Payments off | Supabase, optionally Resend |
| Subscription SaaS | Billing and user dashboard | Auth on, Payments on, Admin on | Supabase + Midtrans or Doku |
| Member or client portal | Gated area without public billing | Auth on, Payments off | Supabase |
| Paid AI SaaS | AI product with plan-based access | Auth on, AI on, Payments on | Supabase + AI provider + payment provider |
| White-label agency base | Fast rebranding for client work | Auth on, Contact on, Payments optional | Supabase, optionally Resend |
Presets you can use right away
Waitlist first, full app later
Waitlist first, full app later
Good for: idea validation, pre-launch landing pages, or waitlist campaigns.Starting togglesMinimum envDo not forget
- Remove CTA paths that point to login, dashboard, paid pricing, or AI features.
- If you do not need the contact form yet, you can set
NEXT_PUBLIC_ENABLE_CONTACT=falseand removeRESEND_API_KEY. - The main customization work usually happens in the landing page, hero copy, waitlist CTA, and FAQ content.
Subscription SaaS without AI
Subscription SaaS without AI
Good for: most classic SaaS products with user accounts, dashboards, and billing.Starting togglesMinimum envDo not forget
- Start with one payment provider. You do not need Midtrans and Doku at the same time.
SUPABASE_SERVICE_ROLE_KEYmatters for server-only writes such as billing, webhooks, audit logs, and signed avatar URLs.- If the contact form is not part of the product, you can turn
NEXT_PUBLIC_ENABLE_CONTACToff.
Member or client portal without public billing
Member or client portal without public billing
Good for: member areas, student dashboards, agency client portals, or internal workspaces.Starting togglesMinimum envOptional when neededDo not forget
- The main customization work usually happens in dashboard navigation, permissions, and your product-specific data model.
- If you need signed avatar URLs, audit logs, or admin reporting, add
SUPABASE_SERVICE_ROLE_KEY. - Because payments stay off, remove upgrade CTA copy, checkout links, and subscription promises.
AI SaaS with paid plans
AI SaaS with paid plans
Good for: AI writing tools, internal copilots, content generators, or paid AI workflows.Starting togglesMinimum envAlternative AI providerDo not forget
- Align pricing and plan quotas with actual AI cost, not only with the marketing copy.
- Clean up error handling for rate limits, provider failures, and plan limits before launch.
- If AI is a premium feature, make sure trial CTA copy, billing, and output guardrails are aligned.
White-label base for agencies or freelancers
White-label base for agencies or freelancers
Good for: client projects that need a landing page, auth, a basic dashboard, and fast rebranding.Starting togglesMinimum envEnable this if the client later needs billingDo not forget
- Rebranding is more than a logo. Update navigation, legal pages, pricing, email sender, and CTA copy too.
- Turn off modules that are outside the client scope so handover stays cleaner.
- Treat this preset as a reusable base, then split it further for each client need.
Common mistakes when using presets
- Turning
NEXT_PUBLIC_ENABLE_PAYMENTS=trueon withoutPAYMENT_PROVIDERand valid provider credentials. - Turning
NEXT_PUBLIC_ENABLE_AI=trueon withoutAI_DEFAULT_PROVIDERand the correct API key. - Leaving navigation, CTA copy, or marketing promises in place for features that have actually been turned off.
- Treating a preset as a final architecture instead of a safe starting point.