MyAppAffiliate

Dashboard Guide

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

Run locally:

Shell
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:

Code
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:

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