Web App
The SelahNote Creator Dashboard is an internal web app for running SelahNote's user-generated content program. Staff manage creators and their referral codes, watch trials and conversions arrive live from RevenueCat, reconcile subscription events, review a log of each creator's posts, and record monthly payouts. It is built with Next.js 16 on top of the same Convex backend as the iOS app.
Every page is a Convex subscription, so a RevenueCat webhook landing on the backend shows up without a refresh. Staff follow each creator's trials and conversions, log their UGC posts, and record a month's payout as a single serializable transaction that cannot pay the same reward twice.
Purpose
Gives the team one trustworthy place to answer "who drove which subscriptions, and what do we owe them?" Rewards come from a fixed rule applied when webhook events arrive, money is kept in integer cents, and a payout is one serializable Convex transaction that re-checks every reward before marking it paid, so two admins or a double click can never pay the same reward twice.
Key Features
Creator records, referral codes, offer mappings, and per-creator logins with owner, admin, viewer, and creator roles.
Convex websocket subscriptions keep every page current, with a Live, Syncing, or Reconnecting indicator in the header.
Idempotent payout batches that re-check every reward, settle partial payments oldest first, and carry the remainder forward.
RevenueCat webhook events listed by environment, with retry and reprocess for anything that failed to attribute.
Creators log their own posts, and staff see that content next to each creator's referral results.
Firebase proves who you are; an admin membership row decides what you can do, and revoking it cuts off live queries at once.
Every dashboard write records the verified actor along with before-and-after details.
Integer-cent money math and America/New_York month boundaries keep every total the same wherever it is shown.
Tech Stack