> ## 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.

# User dashboard

> Comprehensive documentation for the KilatKoding user dashboard, including account, settings, billing, and the main post-login area.

<Info>
  The user dashboard is the main work area after login. This is where users see account summaries, update profiles, manage avatars, and if payments are enabled, manage billing.
</Info>

## What this feature includes

The user dashboard area includes:

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

## Related routes and endpoints

| Route or endpoint          | Type           | Purpose                                       |
| -------------------------- | -------------- | --------------------------------------------- |
| `/dashboard`               | Dashboard page | Main post-login account summary or workspace  |
| `/dashboard/settings`      | Dashboard page | Updates profile, avatar, and account settings |
| `/dashboard/billing`       | Dashboard page | User billing area when payments are enabled   |
| `/dashboard/components`    | Dashboard page | Dashboard and admin component showcase        |
| `POST /api/profile`        | API mutation   | Updates user profile data                     |
| `POST /api/profile/avatar` | API mutation   | Creates a signed avatar upload URL            |

<Note>
  If your product uses subscriptions, the `/dashboard/billing` route will also connect to the payment endpoints described in [Billing and payments](/en/kilatkoding/features/billing-and-payments).
</Note>

## Who uses it

* logged-in users,
* active customers,
* trial users exploring the product,
* internal teams testing post-login flows.

## Main dependencies

| Item                        | Required? | Notes                                                         |
| --------------------------- | --------- | ------------------------------------------------------------- |
| Auth enabled                | Yes       | The dashboard is not relevant without auth                    |
| Supabase public env         | Yes       | Needed for session and auth-aware behavior                    |
| `SUPABASE_SERVICE_ROLE_KEY` | Depends   | Needed for some server-side writes such as signed avatar URLs |
| Payments enabled            | Optional  | Only needed for the billing area                              |

## What teams usually customize

* dashboard navigation structure,
* product terminology,
* data shown in the main dashboard,
* profile fields,
* avatar flow,
* empty states,
* internal CTA paths,
* connection between the dashboard and the product domain model.

## When larger custom work is needed

Larger custom work is usually needed when:

* the dashboard must display core business data,
* the product needs more than profile and billing,
* additional roles exist beyond `member` and `admin`,
* the product needs custom workspace behavior.

## Verification checklist

1. Logged-in users can open `/dashboard`.
2. `/dashboard/settings` can update profile data.
3. Avatar flow works if it is enabled.
4. `/dashboard/billing` only appears or works when payments are enabled.
5. Empty states and internal CTA paths match the real product instead of generic boilerplate wording.

<Tip>
  If the dashboard is active and you also monetize through plans, continue to [Billing and payments](/en/kilatkoding/features/billing-and-payments).
</Tip>
