FrontRow Sports: TakeSide & FrontRow Fans
Designing two products across a startup pivot and 3 USPTO patent filings: TakeSide (500,000+ takes made · 30,000 peak active users · App. 19/737,090) and FrontRow Fans Live Sports Bingo (Nonprovisional App. 19/810,956 & App. 64/116,335 · Material 3 design system).
- 500K+
- Takes Made on TakeSide
- 30,000
- Peak Active Users
- +25%
- Session Retention Lift
1. Making Social Play Around Live Games Feel Effortless
At local sports bars, people always have their phones out on the table while watching a live broadcast of a game overhead. Yet when my friends from Phillips Academy Andover, our CTO Randall M. Anderson, and I started FrontRow Sports, we realized how fragile social play around live sports actually is. Group chats were full of arguments about fourth-quarter calls and player stats, while traditional sports apps treated fans as solitary box-score readers.
Over the life of the company, my co-founders and I designed and built two products from scratch to help friends play together before, during, and after live games—resulting in three pending USPTO patent filings (19/737,090, 19/810,956, and 64/116,335):
- TakeSide (
500,000+ Takes Made·30,000 Peak Active Users· USPTO App.19/737,090): We designed TakeSide as a mobile-first iOS and Android game where friends challenge each other on live ~50/50 sports storylines. Early on, watching fans use the app in dining halls and local bars showed us that complex stat cards slowed down the banter happening around the table. By removing as much visual noise as possible through fan interviews and Mixpanel funnel analyses (Project Simplification), we turned each storyline card into a 3-second mobile interaction—lifting session retention by 25%, reaching 30,000 active users, and driving 500,000+ takes across the NBA season. Behind the scenes, we invented a friend rivalry graph and AI prompt system (filed under USPTO App.19/737,090) that tracks head-to-head history and live game swings to spark friendly competition. - FrontRow Fans (livesportsbingo.com · iOS App Store · Google Play · USPTO App.
19/810,956& App.64/116,335): Because licensing real-time league data feeds (~$30K per league) is unsustainable on a free consumer app without becoming a sportsbook, we pivoted to B2B2C venue gaming—helping local sports bars, breweries, and restaurants host live multiplayer sports bingo that keeps guests at their tables for the full broadcast. Playtesting live sessions in venues taught us that the hardest moment in social play is when a friend arrives late to a table: they want to scan a code and be playing in the same round within seconds from their mobile browser without losing their place. To make joining a friend effortless, I designed our Material 3 design system, custom iconography, and a cross-surface web-to-mobile handoff architecture filed under USPTO App.64/116,335and USPTO App.19/810,956, iterating continuously with live Mixpanel MCP telemetry.
2. TakeSide: Patent-Pending Interactive Storylines, Social Rivalry Graph & LLM Prompt Generation
Traditional sports media publishes static box scores and articles; social media asks fans to compose posts from a blank text box. Through USPTO Nonprovisional Application No. 19/737,090 (Systems and Methods for Rapidly Generating Original, Timely, and Tailored Content, where I am First Named Inventor alongside Rand Anderson), we invented a social publishing and generative AI content loop:
- Automated 50/50 Storylines: Our backend ingested historical and real-time league data to automatically generate a Storyline—selecting uncertain, ~50% probability outcomes (e.g., whether a player hits 5+ three-pointers) that combine an upcoming matchup, recent performance trends (
Last 3 Games), and an argument-worthy premise (24 Points?,More Assists?). - The "Take" & Social Rivalry Data Graph: When a fan swiped right (
Support) or left (Challenge), that single gesture published a "Take" into a dual data graph tracking user interests (supported/rival teams and players) and friend relationships (head-to-head challenge history, win/loss records, and a Personal Rivalry Score). - Contemporaneous LLM Prompt Generator & Generative AI Content (
19/737,090): A contest scheduler tracksPre-Game,Game Play(including halftime, early leads, comebacks, and chokes), andResolutionwindows alongside each user's habitual time-of-day engagement patterns. While a contest is still unresolved, our Prompt Generator traverses the Generated Data File (GDF)—combining live game stats with friend challenges—to prompt generative AI models (such as Claude, DALL-E, and Midjourney) to create real-time humorous rivalry banter, interactive halftime mini-games (e.g., puzzles), and contextual sponsor rewards/coupons distributed to the user and their social network.
Four Take Archetypes & 26 Governed Elements
To turn variable-length sports storylines into cards a fan could read and react to in three seconds, I created high-fidelity visual specifications across four core Take archetypes—each containing 26 total elements (11 textual elements + 15 visual elements):
1P1S(One Protagonist, 1 Stat — Standard Headshot): A single player prop ("LaMelo Ball: 24 Points? AVG: 18.7") paired with a 3-game stat strip (11 PTS,20 PTS,27 PTS) so fans could swipe right (👍 Yes) or left (👎 No) with full context on the card.1P1S(One Protagonist, 1 Stat — Full-Bleed Action Shot): High-drama court photography ("Luka Doncic: 34 Points? AVG: 29.7") with a translucent dark stat pill on the right and theLast 3strip anchored above the vote bar.2P1S(Two Protagonists, 1 Stat — Head-to-Head / Mismatch / Close-Call): Side-by-side player or team comparisons on a single stat ("Kawhi Leonard 26.3 PTS vs. Steph Curry 38.2 PTS — More Points?" or "Giants 212 HR vs. Cubs 187 HR").GO(Game Outcomes): Full matchup winner picks ("PHX vs. MIL · 9:15 PM — Who Wins?") where fans swiped the team card toward their side.
3. Project Simplification, Path-to-Value Analytics & 500,000+ Takes Made
After our beta launch—where 95% of SurveyMonkey participants asked us to expand beyond NBA into MLB and NFL (leading us to raise the capital needed to license Sportradar live feeds during the NBA bubble)—our Mixpanel funnel telemetry exposed a critical drop-off on the path to value: new users were downloading the app, clicking through our tutorial, and hesitating before ever reaching their first value moment (Take Made).
Alongside our 33-fan survey and 22 recorded 1-on-1 discovery interviews (ET100), I sat down with 50+ sports fans across campus dining halls, locker rooms, and local bars to watch them open the app for the first time. Our qualitative synthesis revealed why both casual home-team supporters and die-hard fantasy players wanted TakeSide: unlike season-long fantasy leagues that demand heavy weekly time commitments, fans wanted a low-effort, "table-setting" visual take they could react to in seconds and send via DM to spark friendly head-to-head competition with friends. Watching them use the early card build exposed two immediate UX flaws blocking that experience:
- Direction chevrons (
</>and^/v) looked like navigation instead of a prediction: On our early cards (Fig 3.1), fans thought the arrows scrolled to the next story rather than locking in "Over" or "Under," and our micro-animation feedback was too subtle to confirm their vote. - Nobody reads a demo tutorial before they play: Forcing people through a multi-screen walkthrough before they could touch a live game card delayed the value moment and made the app feel like homework.
Measuring Meaningful Active Usage Across Frequency, Breadth & Depth
We paired the simplified cards with an arcade-style rapid-fire prediction minigame and SeasonPass (an 8-punch loyalty card aligned to our gameday product usage interval that rewarded streaks with prize checkpoints). Rather than tracking passive logins, we segmented our users behaviorally across Frequency, Breadth, and Depth into Casual, Core, and Power cohorts:
- Meaningful Active Usage & Retention (
+25%Session Retention ·30,000Peak Active Swipers): Removing first-card friction so new users hit their first value moment within seconds—and giving them a 10-take Day 0 unlock goal plus an 8-game streak loop—lifted session retention by 25%, scaled TakeSide to a peak of 30,000 active users who swiped and interacted with takes, and generated 500,000+ total takes made across the 2021–2022 NBA season. - Gameday Usage Interval & Cohort Velocity (
31–57 Takes / Active User / Day): Because live sports follow a natural gameday rhythm, we measured engagement across gameday intervals. On peak NBA nights like December 29, 2021, 254 daily active users generated 7,996 takes in 24 hours (~31.5 takes per user), with earlier cohorts averaging over 50 takes per active user per day (4,209 takesacross83 active userson Nov 11;4,182 takesacross73 active userson Nov 13;4,810 takesacross132 active userson Dec 6). - Power-User Depth & Organic Growth Loops (2021–2022 NBA Season): Our top Power Users demonstrated extraordinary season-long depth across multiple leagues and card archetypes—led by
ADRankings(~40,000 takes),Cmill(~20,000 takes),jimgking(~12,000 takes), andlakersfan7(~10,000 takes)—and became our strongest organic acquisition channel through head-to-head friend challenges.
4. FastLane Journey Audit, Mixpanel MCP Telemetry, Continuity Routing (64/116,335) & Probabilistic Bingo (19/810,956)
As we expanded into sports bars and pubs with Live Sports Bingo and Venue FanClubs, patrons entered by scanning a table tent QR code on their phone (FastLane). Before redesigning the live game interface (RIUI), I combined a 5-stage UX audit (Awareness → Consideration → Acquisition → Service → Loyalty) with live telemetry queries through the Mixpanel MCP server—connecting our FrontRow Sports Mixpanel project directly to Claude and Cursor so I could inspect path-to-value funnel drop-off, New, Retained, Resurrected, and Dormant venue cohorts, and tile-expansion depth while iterating in Figma. That data-driven feedback loop shaped both our RIUI interface and two additional USPTO patent filings: USPTO App. 64/116,335 and USPTO Nonprovisional App. 19/810,956 (co-invented with Rand Anderson, claiming priority to 63/883,365).
State-Aware Participation Continuity Architecture (USPTO App. 64/116,335)
Our Mixpanel funnels showed that ordinary QR systems lose patrons on the path to value whenever they force a cold App Store download at the bar table or drop browser session state when cookies clear or tabs close. In USPTO Provisional App. 64/116,335 (State-Aware Participation Continuity System for Routing Users Across Browser, Wallet Pass, Messaging, and Native Application Channels), I designed a server-centric continuity system built around our patrons' real usage intervals and lifecycle states (New, Retained, Resurrected, and Dormant):
- Smart Routing Layer (
SRL) & Multi-Path Resolution: Evaluates table-tent QR codes, NFC tags, and packaging triggers using OS universal/app-link resolution, browser continuity tokens, and server-side phone lookup to dynamically route the same QR scan into a Native App Path, a ReturningWebCardBrowser Path, a Messaging-Assisted Identity Path (prefilledJOINSMS/RCS + OTP verification with zero web forms), or a Re-Authentication Recovery Path. - Phone-Linked Identity Anchor & Geofence Presence Proof: Uses OTP-verified phone numbers as a universal cross-surface key and validates browser geolocation against a venue geofence (with unverified participation mode and manual venue-code fallbacks) to bind campaign-tagged venue memberships across both on-premise and off-premise entry.
- Dynamic Wallet Pass & Rhythm-Aware Lifecycle Routing: Issues and updates an interactive Apple/Google Wallet pass carrying
venue identity,next relevant game,streak count,ticket balance,rank,badge, and deep links back into an occasion-awareWebCard(pregame,live-game,postgame,offday, orcrew-coordinationmode). Rather than prompting every patron identically, our rhythm-aware next-action engine adapts to whether a user is New, Retained, Resurrected, or Dormant—only triggering the Apple/Google Wallet Pass → Native App conversion gate once a patron hits their 2nd Bingo card within an 8-day usage interval (Fig 4.3).
Probabilistic & Temporal Live Progression Engine (USPTO Nonprovisional App. 19/810,956 — First Named Inventor)
Replacing random bingo numbers with live sports statistics creates a mathematical challenge: discrete sports stats have small ranges (e.g., moving from 1+ Hit to 2+ Hits cuts probability by more than half), and a bar promotion fails if zero patrons reach the value moment, too many win at once, or everyone hits bingo in the first quarter. In USPTO Nonprovisional App. 19/810,956 (Systems and Methods for Operating a Live Sports-Themed Bingo Game, First Named Inventor: Rolando Rabines), we designed a two-level control system:
- Bayesian / ML Tile Engine & Impact-Zone Board Topology (
Z2/Z3/Z4): Computes tile-level Expected Achievement Probability (EAP), Expected Achievement Time (EAT), and pairwise correlation metadata, then maps tiles onto a 5×5 grid weighted by combinatorial line participation—Zone 4 (Z4) center tile (4 winning lines), Zone 3 (Z3) corners/diagonals (3 lines), and Zone 2 (Z2) edges (2 lines)—iteratively replacing/repositioning tiles until card-level Expected Bingo Probability (EBP, e.g., 20–30%) and Expected Bingo Time (EBT, e.g., 77.8%–100% of game time / 7th–9th inning or Q4 climax) meet target ranges under ourConfiguration Resolver(Sport Profile,RoundGen Recipe,CardGen Recipe). - Closed-Environment Cohort Diversification & Live Mid-Game Tile Swaps: Scales per-card
EBPdynamically to the venue's player pool size, enforces cross-card diversification along winning lines so cards don't cluster, tracks real-time cohort progress (2 Away,1 Away,Bingobar), and offers targeted in-game tile swaps when liveEBP/EBTdrift—steering the live bar cohort back to the target winner count and late-game finish, followed by post-round ML calibration.
5. FrontRow Fans Latest Release: Designing Live Sports With Zero Logos or Team Colors
"What if a team could feel unmistakably like itself, with no logo, no official colors, and no license?"
Without league or team licensing, we could not use official team logos, official team colors, or player headshots. When those came out in our baseline pass (L0), what was left was a black-and-white board that felt lifeless in a bar.
Working with FrontRow Sports CTO Rand Anderson and our co-founding team on the FrontRow Fans latest release, we co-designed the updated live game interface and I built our Material 3 design kit (internally codenamed RIUI, for rights-independent UI)—rebuilding the visual hierarchy, tile anatomy, and motion language from the ground up using dark venue surfaces (#0B0D13), high-contrast sunset-orange fills (#EF4E00), and rights-safe geometric crests.
1:1 Measured Anatomy: The 71×78 Grid Tile & Converged 340×221 Expanded Modal
Fitting 25 live player and team prop tiles onto a 375px phone screen so they're legible at arm's length in a bar required strict rules for what lives on the tile face versus what moves into the tapped modal:
- Upper half is WHO (
59×12at11pt w800): Player last name (ALLEN,HARDEN,JAMES) or team tri-code (CLE,LAL), paired with a13×16geometric shield (Filled Shield = Home, Outlined Shield = Away). - Lower half is WHAT (
59×12at11pt w600+56pxprogress bar): On the L1 grid tile, a56pxprogress indicator along the bottom inside edge (y=72of78px) replaces the noisy live fraction—so your eye can scan all 25 tiles at a glance and immediately spot which props are almost full. - One converged Expanded Tile (
340×221 r24) across WebCard and App: Tapping any tile opens a single sharedany/bingo/tile-expandedmodal (collapsing 12 separate web and native frames down to 6). It uses a 4-step type ramp (104pt · 32pt · 16pt · 12pt) with a104pt#8jersey watermark in the background and the full fraction (12/12 POINTS) spelled out clearly.
6. Motion & Keeping Web and Mobile in Sync
For the live game experience, we also designed how the board moves and stays in sync between the mobile web card and the native app:
- Shared screens across Web and App: Whenever a screen was identical on the web card and the native app, we designed and maintained a single shared version in Figma—only splitting out the header where the native app needed a back button.
- Five key animations for live play:
- Pregame Entrance (
3000ms): 25 tile stats stagger in (350ms + index × 35ms,cubic-bezier(.16, 1, .3, 1)), followed by 25 accent progress lines drawing viastroke-dashoffset. - Card Resume Linear Wipe (
2500ms): Top-to-bottom linear wipe and glow pulse when a patron unlocks their phone mid-game. - Row Fill →
B-I-N-G-OFlip (3400ms): Four-phase win sequence—winning tile confirm (0–500ms), left-to-right row ripple (550–970ms) while non-winning tiles dim to30%, unified row pulse (1100–1450ms), andB-I-N-G-Oletter flips (1550–2750ms). - Bingo Win Overlay & Confetti (
2285ms): Spring modal scale (80% → 100%) with 30 non-blocking confetti particles and iOS haptic feedback. - Loading Shield Pulse (
2400msloop): Four-stop gradient SVG badge breathing toscale(1.04).
- Pregame Entrance (
Compiling the Figma Board Against Live Code
Because our team named every frame and element on the Figma board systematically, our CTO's compiler (build_board.py) could check our Figma deliverables directly against the live codebase before engineering started building. That compile caught 7 places where the live app had drifted from the spec, 4 design decisions that had quietly disappeared between versions of the board, and 1 stray licensed team logo that had been layered over a headshot in an earlier release.
Below is the live WebLSB preview build (lsb-dev.fanclub.games) running the RIUI tile grammar on a live NFL game (BUF 27 vs. 27 LA in Q4)—where reviewing the real build also let us flag final design QA fixes for engineering (like preventing long surnames such as MUMPFIELD and HERNÁNDEZ from wrapping mid-word, and keeping 341/290 TOTAL YARDS from clipping on the compact tile face).