---
title: "Dashboard Guide"
source: https://docs.myappaffiliate.com/dashboard
docs: "MyAppAffiliate — Developer Documentation"
index: https://docs.myappaffiliate.com/llms.txt
---
# Dashboard Guide

Two views over the same data, both reading the API.

Run locally:

```bash
pnpm --filter @maa/api dev        # API on :8787 (or use the deployed URL)
pnpm --filter @maa/dashboard dev  # dashboard on :3000
```

Point the dashboard at a deployed API with `API_BASE_URL=https://maa-api-cccf50.fly.dev`.

## Founder dashboard — `/app/<appId>`

- **Funnel:** clicks → installs → identified → paid events, plus total revenue
- **Commissions:** pending / matured / paid / lifetime totals
- **Affiliates:** each creator's clicks, installs, and commission earned (click through to
  their view)
- **Links:** every branded link with its click count
- **Recent commissions:** latest commission rows with status

## Creator dashboard — `/app/<appId>/creator/<affiliateId>`

The creator-facing view (the growth loop). Strictly scoped — a creator only ever sees
their own data.

- **Earnings:** pending / matured / paid / lifetime
- **Funnel:** their clicks → installs → identified → paid
- **Next payout:** the earliest maturation date
- **My links:** their links + click counts

## Payouts (CSV)

Matured commissions are exported via:

```
POST /apps/<appId>/affiliates/<affiliateId>/payouts/export
```

This matures due commissions, records a `Payout`, marks them `paid`, and returns a CSV
that reconciles to the payout total. Re-exporting pays nothing (idempotent).

## Demo data

Populate the dashboard with realistic data:

```bash
pnpm --filter @maa/api seed       # creates an app + 3 creators + purchases
```
