> ## Documentation Index
> Fetch the complete documentation index at: https://belajarkoding.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashboard user

> Dokumentasi lengkap untuk dashboard user KilatKoding, termasuk area akun, settings, billing, dan entry point sesudah login.

<Info>
  Dashboard user adalah area kerja utama sesudah login. Di sinilah user melihat ringkasan akun, mengubah profil, mengelola avatar, dan kalau payments aktif, mengelola billing.
</Info>

## Apa yang termasuk di fitur ini

Area dashboard user mencakup:

* `/dashboard`
* `/dashboard/settings`
* `/dashboard/billing`
* `/dashboard/components`

## Route dan endpoint terkait

| Route atau endpoint        | Jenis             | Fungsi                                             |
| -------------------------- | ----------------- | -------------------------------------------------- |
| `/dashboard`               | Halaman dashboard | Ringkasan akun atau area kerja utama sesudah login |
| `/dashboard/settings`      | Halaman dashboard | Update profil, avatar, dan pengaturan akun         |
| `/dashboard/billing`       | Halaman dashboard | Area billing user saat payments aktif              |
| `/dashboard/components`    | Halaman dashboard | Showcase komponen dashboard dan admin              |
| `POST /api/profile`        | API mutation      | Update data profil user                            |
| `POST /api/profile/avatar` | API mutation      | Menyiapkan signed upload URL untuk avatar          |

<Note>
  Kalau produkmu memakai subscription, route `/dashboard/billing` juga akan terhubung ke endpoint payment di [Billing dan payments](/kilatkoding/features/billing-and-payments).
</Note>

## Siapa yang memakainya

* user login,
* customer aktif,
* trial user yang sedang menjelajahi produk,
* tim internal saat menguji flow sesudah login.

## Dependensi utama

| Item                        | Wajib?     | Catatan                                                               |
| --------------------------- | ---------- | --------------------------------------------------------------------- |
| Auth aktif                  | Ya         | Dashboard tidak relevan tanpa auth                                    |
| Supabase public env         | Ya         | Dibutuhkan untuk session dan data auth-aware                          |
| `SUPABASE_SERVICE_ROLE_KEY` | Tergantung | Dibutuhkan untuk beberapa write server-only seperti avatar signed URL |
| Payments aktif              | Opsional   | Hanya untuk area billing                                              |

## Yang biasanya dikustomisasi

* struktur menu dashboard,
* istilah produk dan label navigation,
* widget atau data yang ditampilkan di dashboard utama,
* field profil,
* avatar flow,
* empty state dan CTA internal,
* hubungan dashboard dengan domain model produk.

## Kapan perlu custom besar

Custom besar biasanya dibutuhkan saat:

* dashboard harus menampilkan data domain bisnis utama,
* kamu butuh lebih dari sekadar profile dan billing,
* ada role tambahan selain `member` dan `admin`,
* kamu ingin workspace atau area kerja yang lebih spesifik.

## Checklist verifikasi

1. User login bisa masuk ke `/dashboard`.
2. `/dashboard/settings` bisa update profil.
3. Avatar flow berhasil kalau fitur itu dipakai.
4. `/dashboard/billing` hanya muncul atau aktif saat payments dinyalakan.
5. Empty state dan CTA sesuai dengan produk, bukan default boilerplate.

<Tip>
  Kalau dashboard user aktif dan kamu juga menjual plan, lanjutkan ke [Billing dan payments](/kilatkoding/features/billing-and-payments).
</Tip>
