Dashboard Guide
Two views over the same data, both reading the API.
Run locally:
pnpm --filter @maa/api dev # API on :8787 (or use the deployed URL)
pnpm --filter @maa/dashboard dev # dashboard on :3000Point 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/exportThis 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:
pnpm --filter @maa/api seed # creates an app + 3 creators + purchases