All projects

Web App

SelahNote Creator Dashboard

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.

A creator program, run from one live dashboard.

Referrals, rewards, and payouts as they happen.

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 Management

Creator records, referral codes, offer mappings, and per-creator logins with owner, admin, viewer, and creator roles.

Live Data

Convex websocket subscriptions keep every page current, with a Live, Syncing, or Reconnecting indicator in the header.

Monthly Payouts

Idempotent payout batches that re-check every reward, settle partial payments oldest first, and carry the remainder forward.

Event Reconciliation

RevenueCat webhook events listed by environment, with retry and reprocess for anything that failed to attribute.

UGC Activity Log

Creators log their own posts, and staff see that content next to each creator's referral results.

Membership-Gated Access

Firebase proves who you are; an admin membership row decides what you can do, and revoking it cuts off live queries at once.

Audit Trail

Every dashboard write records the verified actor along with before-and-after details.

Consistent Reporting

Integer-cent money math and America/New_York month boundaries keep every total the same wherever it is shown.

Tech Stack

frontend

Next.js 16React 19TypeScriptConvex React clientFirebase Authentication

backend

Convex queries & mutationsRevenueCat webhooksRole-based admin membershipIdempotent payout batchesAudit log

infrastructure

Convex cloudFirebaseEnvironment-scoped indexesVitest