Case study
AMZ Brand Dashboard
Amazon Brand Performance Analytics
Role
Scope
Stack
Live
What I built.
- 01
Built it end to end for AMZ Incubator, which manages more than 15 Amazon brands and used to build every client report by hand.
- 02
Data from Seller Legend arrives every night without anyone doing anything, and missing days can be recovered with one click.
- 03
Staff start from a brand overview and click down through regions to a single product: sales, revenue, profit, margin, ad spend, conversion, stock-outs and returns.
- 04
Compare this month with last month and the same month last year, in one currency across the UK, US, EU and other markets.
- 05
One-click CSV and Excel exports, ready for client meetings.
- 06
Only approved staff get in, and each person sees only what their role allows.
- 01
Turborepo monorepo: a Next.js 15 and React 19 dashboard on Redux Toolkit and Redux-Saga, and a domain-driven Express 5 and TypeScript API.
- 02
Supabase Postgres with Prisma, 20+ versioned SQL migrations, organisation tenancy on every data table, and Row-Level Security policies.
- 03
Seller Legend OAuth2 integration with a nightly cron that pulls every active account, allows for the 3-day data lag and continues past per-account failures; a second cron refreshes tokens.
- 04
Exponential backoff on 429s and transient errors, cached FX conversion with mismatch detection, and admin backfill of up to 90 dates per request with duplicate-report cleanup.
- 05
JWT access and refresh tokens in httpOnly cookies, OTP verification, admin approval, and an admin, member, viewer hierarchy enforced in the API, the UI and the database.
- 06
Streamed date-range responses for large datasets; Docker images pushed to DigitalOcean by GitHub Actions, the dashboard on Vercel, and Husky pre-commit checks.