Documentation Index
Fetch the complete documentation index at: https://belajarkoding.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Core app dan Supabase
| Variable | Dipakai saat | Wajib? | Keterangan |
|---|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Auth atau data app aktif | Ya, untuk auth/data | URL project Supabase |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Auth atau data app aktif | Ya, untuk auth/data | Publishable atau anon key Supabase |
SUPABASE_SERVICE_ROLE_KEY | Billing, admin, avatar, webhook, audit, persistent rate limit | Ya, untuk fitur server-only | Jangan pernah expose ke client |
NEXT_PUBLIC_APP_URL | Selalu sebaiknya diisi | Sangat disarankan | Base URL app untuk callback, order page, dan metadata |
Untuk setup lokal, simpan secret di
.env.local. npm run env:check sekarang membaca .env dan .env.local seperti Next.js, jadi hasil cek lebih dekat ke perilaku app yang sebenarnya.Toggle fitur
Jika env toggle tidak diisi, repo menganggap fitur tersebut aktif. Isifalse, 0, no, atau off untuk mematikannya.
| Variable | Fungsi |
|---|---|
NEXT_PUBLIC_ENABLE_AUTH | Mengontrol login, signup, dashboard, settings, dan auth-aware shell. Auth baru benar-benar dianggap aktif kalau public env Supabase juga terisi |
NEXT_PUBLIC_ENABLE_WAITLIST | Mengontrol halaman dan API waitlist |
NEXT_PUBLIC_ENABLE_CONTACT | Mengontrol form kontak |
NEXT_PUBLIC_ENABLE_PAYMENTS | Mengontrol billing, checkout, dan payment-related UI |
NEXT_PUBLIC_ENABLE_ADMIN | Mengontrol admin dashboard |
NEXT_PUBLIC_ENABLE_AI | Mengontrol AI routes dan UI terkait |
Untuk auth, toggle
true saja belum cukup. Kalau NEXT_PUBLIC_SUPABASE_URL atau NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY kosong, halaman auth akan masuk ke mode notice atau fallback, bukan memaksa inisialisasi client yang gagal.Payments
| Variable | Wajib saat | Keterangan |
|---|---|---|
PAYMENT_PROVIDER | Payments aktif | Nilai valid: midtrans atau doku |
MIDTRANS_SERVER_KEY | PAYMENT_PROVIDER=midtrans | Secret server-only untuk Midtrans |
NEXT_PUBLIC_MIDTRANS_CLIENT_KEY | PAYMENT_PROVIDER=midtrans | Client key untuk membuka Snap popup |
DOKU_CLIENT_ID | PAYMENT_PROVIDER=doku | Client ID merchant Doku |
DOKU_SECRET_KEY | PAYMENT_PROVIDER=doku | Secret key merchant Doku |
Email dan contact
| Variable | Wajib saat | Keterangan |
|---|---|---|
RESEND_API_KEY | Contact form atau email aktif | API key Resend |
EMAIL_FROM | Disarankan saat email aktif | Sender email. Kalau kosong, repo memakai default KilatKoding |
CONTACT_EMAIL | Opsional | Email tujuan form kontak. Kalau kosong, fallback ke EMAIL_FROM |
Admin dan access control
| Variable | Wajib saat | Keterangan |
|---|---|---|
ADMIN_EMAILS | Opsional | Daftar email bootstrap admin, dipisahkan koma |
ADMIN_EMAILS bukan source of truth akhir. Setelah user masuk, repo akan mengelola role nyata lewat tabel user_roles.
AI
| Variable | Wajib saat | Keterangan |
|---|---|---|
AI_DEFAULT_PROVIDER | AI aktif | Nilai valid: openai atau anthropic |
OPENAI_API_KEY | AI_DEFAULT_PROVIDER=openai | Secret untuk route AI OpenAI |
ANTHROPIC_API_KEY | AI_DEFAULT_PROVIDER=anthropic | Secret untuk route AI Anthropic |
Env opsional untuk operasional
| Variable | Dipakai oleh | Keterangan |
|---|---|---|
VERCEL_URL | Metadata base URL saat deploy | Biasanya diisi otomatis oleh Vercel |
PLAYWRIGHT_BASE_URL | Playwright | Memungkinkan test E2E memakai server yang sudah hidup |
CI | GitHub Actions atau CI lain | Mengatur retry dan reporter tertentu di Playwright |
Profil toggle yang umum
Bagian ini berguna kalau kamu ingin memulai dari kombinasi fitur yang realistis, bukan dari semua fitur aktif sekaligus.Waitlist dulu, aplikasi nanti
Waitlist dulu, aplikasi nanti
Cocok kalau kamu masih validasi ide.Tetap siapkan
NEXT_PUBLIC_SUPABASE_URL dan NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY karena waitlist memakai Supabase. Kalau contact form aktif, siapkan juga RESEND_API_KEY.SaaS berlangganan tanpa AI
SaaS berlangganan tanpa AI
Cocok untuk mayoritas produk SaaS klasik.Pastikan Supabase public env,
SUPABASE_SERVICE_ROLE_KEY, dan credential payment provider sudah diisi.SaaS AI dengan monetisasi plan
SaaS AI dengan monetisasi plan
Cocok kalau fitur utamanya memang AI.Selain env payment, kamu juga perlu
OPENAI_API_KEY atau ANTHROPIC_API_KEY sesuai provider default yang dipilih.Portal member atau client tanpa billing publik
Portal member atau client tanpa billing publik
Cocok untuk area login tertutup, dashboard internal, atau workspace client.Setup minimalnya cukup Supabase. Admin bisa dinyalakan belakangan kalau kamu butuh panel operasional internal.
Contoh minimal .env.local
Gunakan contoh ini kalau kamu hanya ingin auth, dashboard, dan satu payment provider:
Cara mengecek env dengan cepat
- Pastikan nilai terbaru ada di
.env.localatau.env. - Jalankan
npm run env:check. - Baca status
ready,fallback mode, ataudisabled by .... - Setelah app hidup, buka
GET /api/healthuntuk melihat readiness yang lebih detail. - Kalau kamu baru mengubah env, restart
npm run devlalu cek ulang.