FrontRow
Creator monetization platform. Two products in one window, and a verification gate that had to stop people without losing them.
- Client
- FrontRow
- Role
- Design and engineering
- Year
- Ongoing

Context
FrontRow is a subscription and monetization platform for creators. Creators set a monthly price, paywall individual posts, take tips, run live streams, sell one-to-one calls by the minute, and get paid out. Fans subscribe, unlock posts, tip, watch, book and message.
It is two products sharing one window. A fan’s context is casual and mobile: browsing a feed, reacting, spending small amounts. A creator’s context is work, usually at a desk, managing income. Many creators don’t even operate their own account, because agencies manage rosters and inboxes on their behalf, and the largest ones reach the platform through an API rather than the interface at all.
That produced a product much bigger than its marketing page suggests: 85 routes, 219 API endpoints, 73 data models, and separate surfaces for fans, creators, agencies, admins and developers.
The problem
A creator with an audience usually has one price and one product, a monthly subscription. That serves the fan who wants everything and nobody else. Not the one who would pay seven dollars for a single drop, not the one who would tip during a stream, not the one who would pay for ten minutes of your time.
Adding revenue surfaces is the easy half. Six ways to pay is also six ways to be confused about what something costs, and the platform sits between two failure modes it can’t afford. Build it like business software and a creator’s storefront reads as admin tooling. Build it like a consumer social app and the earnings, payouts and analytics that creators actually run a business on feel bolted on.
Underneath both is the harder constraint. Money only moves if both sides trust the surface it moves across, and the people this platform serves treat discretion, personal safety and control over their own content as first-order concerns rather than compliance boilerplate.
What I built
You can start immediately. You can’t get paid until you verify. Onboarding is instant, and payouts are gated on identity verification. The alternative, verifying before anyone can do anything, is safer for the platform and asks a stranger to hand over a government ID before they have any reason to trust it. Putting the gate on the money instead means the cost lands at the moment the creator most wants to clear it.
Verification is the last step in the wizard, not the first. The creator setup runs photo, banner, bio, handle, verify, in that order. By the time the ID request appears, someone has chosen a handle and written a bio, and the account is theirs in a way an empty form never is. Sequencing is doing real work here: the same request, moved to step one, is a stranger asking for your passport.

The reminder has a stopping rule. Creators who accept the agreement but never verify get nudged on day 1, day 3 and day 7, and then never again. Three is a judgement call about where persistence turns into spam, and the value of writing it down is that the rule is inspectable rather than a number someone retunes every quarter.
The nudging stops while the platform owes them an answer. A creator whose documents are in review isn’t chased, because the ball is not in their court. This is a small piece of logic and the clearest example of the posture I wanted the product to have: the system knows the difference between waiting on you and waiting on itself, and only one of those is your problem.
The prompt names the exact next step. The home-feed banner doesn’t say “finish setting up”. It resolves the first unfinished step and names it, using the same resume order the wizard uses, so the banner and the wizard can never disagree about what you owe. Two surfaces computing “what’s next” independently is how a product starts lying to people.

Money is green, and only money is green. The brand is a single deep violet, used for intent and state. Tipping gets its own green, reserved for spending and used for nothing else, so a fan can tell they are about to pay from colour alone, before reading a word. On a platform with six ways to spend, the alternative is a subscribe button and a tip button that look like siblings.
Off reads as off. A disabled primary button switches to flat neutral grey rather than a faded violet. Faded-brand disabled states are everywhere and they are ambiguous by construction: the user has to decide whether the control is unavailable or the page is still loading. Grey answers that in the first glance.
One CTA vocabulary across two type systems. Every access-gating action (Subscribe, Unlock, Tip, Withdraw, Continue) renders uppercase, while secondary actions like Cancel and Not now stay sentence case, so the primary action wins without needing to be bigger. The subscribe control also pins its own typeface inline rather than inheriting the page’s, because it appears on creator profiles and in feeds that use different fonts, and a checkout button that shifts shape between pages is a checkout button people look at twice.
Depth is spatial, not shadowy. Surfaces are flat at rest and separated by hairline borders and tonal steps. Shadows are reserved for things that genuinely float above the page: modals, drawers, dropdowns, toasts. A resting card with a drop shadow is treated as a bug, which keeps the payment surfaces from drifting toward the neon-and-gradient register that fintech tends to.
Live has one grammar everywhere. A creator who is streaming gets a red avatar ring and a red LIVE chip, and tapping it joins the stream rather than opening the profile. Viewer counts hide below ten. That last rule is the one I would defend hardest: a stream showing “3 watching” tells a fan to leave, and the count is only decoration until it is evidence.
Empty states teach the interface. Every one pairs an illustration with a title, a two-line explanation and a real action, rather than saying “nothing here”. On a product where a new creator’s every surface starts empty, the empty state is the first interface most people meet.
Agency and admin tooling are products, not settings pages. Agencies get roster management, a shared inbox, team members with their own permissions and their own analytics. Admin gets verification review queues, revenue, reports, impersonation for support. These are the surfaces that decide whether the platform can actually be operated, and they are the first thing cut when a consumer product treats its own operations as an afterthought.
Accessibility
The target is WCAG 2.2 AA in both themes, which on this product meant two decisions that usually get skipped. Placeholder text is held to the same 4.5:1 contrast as body text rather than being allowed to fade for elegance, and every animation ships a reduced-motion alternative rather than being disabled outright, so the marquee, the onboarding sequence and the stream chat all degrade to something still legible instead of something still.
Where it landed
Shipped and live, moving real money between fans and creators through subscriptions, paywalled posts, tips, live streams and paid calls, with payouts running behind them.