What it does
Turn a Big Brother season into a competition your whole friend group plays together: draft the house, make a quick weekly pick before each episode, and let the app score it automatically. For the superfan who is not in a league yet, give a two-minute pre-episode ritual and a place to go deep on houseguests without a spreadsheet or a login.
Currently
Live at bigbrotherfantasy.com, hosted separately from k8mak.com, built on a Vite and React front end with a Supabase backend (a sibling of SurvivorTribes, forked from the same codebase). BB28 premieres July 9 2026. The honest strategic tension the analytics surfaced: about 98.9% of visitors never cross the login wall, so the real work is not more league depth, it is funnel conversion and a weekly habit that lives entirely on the free, no-account side. The North Star is Weekly Engaged Players, and the protected bet is a named weekly ritual called Thursday Picks.
Roadmap
/now-next-later-roadmapNow/Next/Later Roadmap- Homepage 'do something now' path plus episode countdown and a this-week poll
- Surface the compare tool everywhere (it is the stickiest feature but almost no one finds it)
- Thursday Picks: the named weekly ritual, a no-auth poll plus a Solo pick, live every episode week (the strategic spine)
- Solo Team shareable graphic with a share CTA on every fan page
- GA4 plumbing: Weekly Engaged Players instrumentation, bot filtering, mark conversions
- Episode-timed email notifications (polls closing, your player scored, recap live)
- Weekly picks made prominent and visibly scored
- Standings and leaderboard auto-update after each episode
- Slug URLs plus canonicals to protect organic search
- Solo-to-league upgrade prompt at a high-intent moment
- Trade, waiver, and free-agent system for invested leagues
- Weekly power rankings and head-to-head matchups
- Pricing page concretize plus a commissioner-pays test
- Cross-season historical stats and a multi-show platform (the seasonality hedge and the BB29+ bet)
Recently shipped
- Jul 8, 2026Baked real HTML, meta, and JSON-LD into the client-rendered SPA with a prerender pass, plus homepage schema and per-page meta, so crawlers and AI engines see the app instead of an empty shell (K8-1783).
- Jul 8, 2026Added BBFantasy to the k8mak.com apps catalog with a thumbnail and this detail page, timed to premiere week.
- Jun 28, 2026Ran the full 16-step product-strategy recipe grounded in the live repo and real GA4 data, and locked BBFantasy as a recurring, season-agnostic product.
How I know it's working
instrumented Β· awaiting trafficThe number of unique people who complete at least one core engagement action within a given episode week during the season. A core action is a weekly pick or prediction on the free no-auth side, a draft or lineup or standings check on the paid league side, or an active use of the compare tool. It is active-only on purpose: counting passive page views would let search traffic inflate the number without measuring the habit. It spans free and paid, so it keeps the team building the funnel rather than the paywall, and it leads Season Pass revenue rather than lagging it.
The events are wired into a privacy-first store. Counts populate here as people use it. This is the honest part of the work: instrument first, claim later.
How it's built
How I built it
I built BBFantasy for the same reason I built SurvivorTribes: I love Big Brother, I love a good fantasy league, and the two never quite fit together without a pile of manual scoring. It is a sibling of SurvivorTribes, forked from the same codebase, so the shape was familiar. What was not familiar was what the data taught me once I ran the full product process on it, the same 16-step process I would run for a client.
The finding that reshaped the whole strategy
I built the league features first. Drafts, scoring, leaderboards, the whole commissioner setup. Then I looked at the real GA4 data and got humbled. About 98.9% of the people who show up never log in. They arrive on episode nights, poke around houseguest profiles, and leave. The compare tool turned out to be the stickiest thing in the app, and almost nobody could find it.
So the honest question stopped being "what league feature do I build next" and became "how do I make the free, no-login side worth coming back to every single week." That reframe is the strategy. The opportunity is not new audience, it is funnel conversion and a weekly habit, and the bridge from an anonymous fan reading a profile to a player in a league barely existed.
The North Star and the protected bet
The North Star is Weekly Engaged Players: unique people who take at least one active action in a given episode week. It is active-only on purpose, because counting passive page views would let search traffic inflate the number without measuring the habit I actually care about. It spans free and paid, so it keeps me building the funnel instead of the paywall, and it leads revenue rather than lagging it.
The protected bet is a named weekly ritual, Thursday Picks: a no-auth poll plus a Solo pick that anyone can play in a couple of taps, live every episode week. It ranked fifth on RICE, and I am shipping it in the first wave anyway, because it is the one thing that moves the hardest input, weekly retention, and the whole North Star depends on it. That is the single deliberate override of the scores, and it is documented as one.
What I am choosing not to do yet
The paid Season Pass exists, but this season it is a validation signal, not the goal. I would rather find out whether anyone actually wants to pay for it before I commit to a number. Optimizing a paywall that 98.9% of visitors never reach would be solving the wrong problem. Deep league tooling like trades and waivers is real work loved by the invested few, so it sits in "Later" until there are enough leagues to justify it. And because BBFantasy is built to be a recurring, season-agnostic product, the between-season content is not a someday-maybe, it is the growth path: after BB28 wraps, the same engine loads BB29 and can backfill past seasons, exactly the way SurvivorTribes grew beyond a single season. Win this season well first, but build it so season two is a content load, not a rebuild.
The strategy behind it
A snapshot of the product process this app was built from. Each artifact comes from a k8 skill you can run yourself. It reflects the original plan, not the live state above.
Jobs to be done
/jtbd-analysisJTBD Analysis| When I⦠I want to⦠| Importance | Frequency |
|---|---|---|
| When my friend group watches a Big Brother season, I want to turn it into a competition we all play together, so we have stakes and trash-talk all summer. | high | high |
| When a new episode is about to air, I want something to do and predict, so watching feels active instead of passive. | high | high |
| When I am a superfan between episodes, I want to go deep on houseguests, stats, and history, so I can feel informed and form opinions. | medium | high |
| When something wild happens in the house, I want to react and share and look clever to my people, so I get a little social currency. | medium | medium |
| When I run a league, I want to manage scoring and keep my players engaged with near-zero effort, so I am not doing unpaid admin all season. | high | high |
| When the season ends, I want to settle who won and remember it, so the bragging rights are real and durable. | medium | low |
Persona
/persona-createPersona Create- Be informed and be right about her predictions
- Have one structured place to make and track picks instead of Wikipedia plus Reddit plus scattered wikis
- Look clever to her people with a low-effort shareable
- Houseguest info is scattered across a dozen tabs
- Nowhere structured to make a prediction and prove it later
- Reacting well takes more effort than it should
Persona
/persona-createPersona Create- Get everyone playing fast, before the season starts
- Never hand-update a scoring spreadsheet again
- Keep the group engaged all summer, not just on draft night
- Herding friends to sign up, and the league dying before it starts
- Manual scoring every Thursday
- Players ghost after the draft and nothing brings them back
Persona
/persona-createPersona Create- Be part of the group fun without studying
- Play in a few taps and talk smack in the group chat
- Fantasy leagues feel intimidating and homework-heavy
- Bounces immediately if onboarding is heavy
Prioritization and risks(the internal detail)
RICE prioritization
/rice-scoreRICE Score| Feature | Reach | Impact | Conf. | Effort | Score |
|---|---|---|---|---|---|
| Episode countdown plus this-week poll on the homepage | 3000 | 1.5 | 80% | 0.5 | 7200 |
| Surface the compare tool everywhere | 1500 | 2 | 90% | 0.5 | 5400 |
| Homepage 'do something now' path | 3000 | 2 | 80% | 1 | 4800 |
| Share CTA on every page | 2500 | 1 | 70% | 0.5 | 3500 |
| Named weekly ritual: Thursday Picks (strategic spine) | 2000 | 3 | 80% | 1.5 | 3200 |
| Solo Team shareable graphic | 2500 | 2 | 70% | 1.5 | 2333 |
Pre-mortem risks
/pre-mortemPre-mortemSolo-founder capacity collapses mid-season. Too many 'Now' items compete for the same scarce time, so the ritual ships half-done while the shareable and the homepage all fight for attention. This is the most likely killer.
highMitigation: Ruthless sequencing. The Thursday Picks ritual is the protected spine; everything else is explicitly cuttable, and 'Next' stays 'Next' no matter what.
Structural churn beats the ritual. A player's picks get evicted from the house and they leave regardless of features. This is the most Big-Brother-specific risk: reality TV evicts your reason to care.
highMitigation: An 'evicted player save' mechanic, a Solo winner-pick that keeps stakes alive, and league-wide engagement so it is not only about your one player.
The weekly ritual shipped but nobody noticed. Thursday Picks existed but was not promoted, so retention never moved.
mediumMitigation: Make it the homepage hero on episode days, name it clearly, and add the email nudge if the 'Now' work lands early.
The launch slipped. Cast data or payments were not ready by premiere, so the one reliable traffic spike hit a broken app and never came back.
mediumMitigation: Lock the launch blockers before premiere and soft-launch with placeholder houseguests if cast data slips.
Bot traffic masked the truth. Bots were never filtered, so Weekly Engaged Players looked fine or looked dead and decisions were made on noise.
mediumMitigation: Filter bots before reading the metric. This is a 'Now' prerequisite, not optional.