Before you run the project
Do not start withnpm run dev right away. Decide first which features you actually want to use. KilatKoding is intentionally broad, but not every product needs every module.
Choose the path that fits you
If you are non-technical
Use this documentation to:- understand which pages and features are already included,
- prepare the service accounts that the product needs,
- give clear direction to a developer or AI coding assistant.
If you are a developer
Use this documentation to:- choose which features stay enabled,
- fill out
.env.local, - run Supabase migrations,
- adjust branding and pricing,
- verify build, test, and deployment.
Early decision checklist
| Decision | Options | Impact |
|---|---|---|
| Auth | Enabled or disabled | Controls login, signup, dashboard, settings, and admin access |
| Payments | Midtrans, Doku, or disabled | Controls billing, checkout, and webhooks |
| Contact form | Enabled or disabled | Determines whether you need Resend for contact submissions |
| Waitlist | Enabled or disabled | Determines whether the waitlist page is part of the product |
| AI | Enabled or disabled | Determines whether you need OpenAI or Anthropic keys |
| Admin | Enabled or disabled | Determines whether the admin panel and role management are active |
Service accounts you may need
| Service | Required? | Used for |
|---|---|---|
| Supabase | Yes, if auth or app data is active | Auth, database, profile, subscriptions, payments, waitlist, audit, and rate limits |
| Resend | Optional | Contact form, welcome email, invoice email |
| Midtrans | Optional | Checkout with Snap |
| Doku | Optional | Checkout with JOKUL |
| OpenAI or Anthropic | Optional | AI features |
Fast setup playbooks
If you do not want to read every page from the start, use one of these paths first and then go deeper into the linked docs.| Goal | Common starting toggles | Minimum services | Read next |
|---|---|---|---|
| Validate an idea with a waitlist first | Auth off, Waitlist on, Contact optional, Payments off, Admin off, AI off | Supabase, optionally Resend | KilatKoding use cases, Services setup, Customization |
| Subscription SaaS without AI | Auth on, Payments on, Admin on, Contact optional, AI off | Supabase + Midtrans or Doku | Services setup, Environment variables, Testing and deployment |
| SaaS with AI features | Auth on, Payments optional, Admin on, AI on | Supabase + OpenAI or Anthropic, plus a payment provider if you charge subscriptions | AI and tooling, Services setup, Environment variables |
| Member portal or client portal | Auth on, Payments optional, Admin optional, Contact optional, AI off | Supabase | Customization, Components and UI, Architecture |
on and off labels above refer to the NEXT_PUBLIC_ENABLE_* toggles documented in Environment variables.
If you want a starting point you can copy directly into .env.local, also open Preset recipes by use case.
AI prompt you can use right away
Recommended order of work
Decide which features stay active
Choose the modules you want to use. Later you will control them through
NEXT_PUBLIC_ENABLE_* values in .env.local.Prepare service accounts
Create a Supabase project first. Add Resend, Midtrans, Doku, or an AI provider only if your product will actually use them.
Run local setup
Follow Local setup for your operating system.
Fill environment variables
Use Environment variables as the main reference while filling
.env.local.What success should look like
Before you start large customization work, make sure these basics already work:- the landing page loads,
- the auth flow works or is intentionally disabled,
- the dashboard opens for logged-in users,
- the payment flow works if you kept payments enabled,
npm run lint,npm run typecheck, andnpm testdo not fail.