arrow_back Back to Projects
Case Study Product Strategy · Platform Analysis · Solo Build

Designing for a Platform Shift Everyone Ignored

Perfect Morning: a calm, 10-minute, once-a-day Roblox game.

The platform changed what it paid for, and almost no one redesigned around it. When Roblox's Creator Rewards began paying for daily return and audience growth instead of raw session length, I built the one thing the whole platform was optimizing against: a game that is intentionally short, calm, and playable once per day. I wrote the gap analysis, an enterprise-grade PRD, and the technical architecture, then designed and shipped it solo in 10 days. The constraint was not a limitation; it was the product.

RoleProduct Manager & Builder
PlatformRoblox · solo
ThesisThe constraint is the product
BuildDesigned & shipped in 10 days
info

KPI figures on this page are pre-launch targets, not measured results, and visuals tagged Illustrative are recreated to show the approach. The strategy, PRD, design rules, and architecture are real.

Situation

A platform changed its incentives, and the market did not move

Roblox's Creator Rewards pays developers for driving daily engagement and expanding the platform's audience. It replaced older systems like Engagement-Based Payouts, so instead of being paid mainly for total session length, creators now earn a baseline in Robux plus a share of platform purchases from the new and returning players their game brings in. In practice, the algorithm started rewarding 24-to-48-hour return rate over raw time-in-game, which quietly changed what a "good" game is worth building.

Almost everyone kept optimizing for the old metric: longer sessions, more grind, more time sunk. No one was designing for the new one. There was no game built to be intentionally short, once-per-day, and calm, even though that is precisely the behavior the new system pays for. The mismatch between what the platform now rewards and what the market still builds was the entire opportunity.

sync_altThe incentive shift
Illustrative

Before · Engagement-Based Payouts

Reward total session length

Optimize for time-in-game. Build grind, sinks, and long sessions. Everyone competes on the same axis.

arrow_forward

Now · Creator Rewards

Reward 24-48h return + audience growth

Baseline Robux plus a share of purchases from new and returning players. The win condition is daily return, not session length.

A recreated view of the shift that anchored the gap analysis. When the payout follows daily return, an intentionally short, once-a-day ritual is no longer a weakness, it is the strategy.
Task

Turn the platform insight into a product, on paper, before building

I held myself to an enterprise PM bar: a complete PRD before any code. Pick one user and prove why she returns daily, make the constraint the differentiator, size the retention mechanic to the metric the platform now pays for, design monetization that does not betray a calm product, and pre-commit to a kill gate. Only then, build.

travel_explore

Read the platform

Design for the new incentive, not the old one.

lock_clock

Constraint as product

Short, once-daily, calm, by design.

volunteer_activism

Monetize ethically

Hard rules that protect the ritual.

gavel

Gate the effort

A pre-set rule to stop and redesign.

Action · Gap analysis

From a platform incentive to a single, defensible concept

I paired the Creator Rewards shift with a scan of the calm-habit category outside Roblox, where daily-return behavior is already well understood: the streak loop in Duolingo, the gentle daily check-in of Finch, the ritual framing of Headspace. None of that thinking existed on Roblox. The concept chose itself: a deliberately short, once-per-day, calm game, because it is exactly what the new algorithm pays for and exactly what no competitor was building.

trending_up

Platform signal

Payout now follows daily return, so a once-a-day ritual is aligned with the money, not against it.

spa

Category proof

Calm-habit apps already prove people return daily for a short, low-pressure moment.

block

The empty quadrant

No Roblox game was short, once-daily, and calm. The gap was the whole reason to build.

Action · User

One sharp persona, and the job she hires the product to do

I built the PRD around a single, specific persona rather than a vague "everyone," modeled on real behavioral patterns in the calm-app category. Designing for one person with a real job-to-be-done is what keeps a product opinionated.

person

Maya

21 · nursing student

Overloaded, time-poor, and wary of anything that wants more of her attention. She does not want another game to sink hours into; she wants one calm thing that asks for ten minutes and then lets her go.

Jobs to be done

  • wb_twilight"Give me a small, calm ritual to start my day, without guilt or grind."
  • check_circle"Let me finish and feel done, not pulled back in by a timer or a reward I will miss."
  • local_fire_department"Give me a reason to come back tomorrow that respects my time."
Action · The constraint

The limit is the feature: 10 minutes, once a day

The core decision was a server-enforced 10-minute hard cap and a one-session-per-day rule. Not a suggestion, not a soft nudge, an enforced boundary that makes the product trustworthy: Maya knows it will never try to keep her longer than it promised. Enforcing it server-side is what makes the constraint real rather than cosmetic.

schemaSession state machine
Illustrative
lock

Locked

waiting for the day's window

arrow_forward
play_circle

Active

10-min cap, server timed

arrow_forward
task_alt

Complete

streak credited, journal saved

arrow_forward
bedtime

Locked till tomorrow

one session per day

The gate is server-authoritative, so the cap and the once-a-day rule hold even if the client lies. The same state machine is where streak credit and the next-day unlock are decided.
Action · Retention

A 30-day streak ladder, sized to the metric that pays

Illustrative

Because the platform now pays for return, retention design is the business model. I built a 30-day unlock ladder with calm, earned milestones rather than punishing streak-loss mechanics, engineered toward a day-1 return target of 40%. The reward for coming back is a gentle sense of progress, not a fear of losing what you built.

Day 1

first ritual, first unlock

arrow_forward

Day 7

new calm theme

arrow_forward

Day 14

ritual customization

arrow_forward

Day 30

milestone keepsake

target

Design target: D1 return >= 40%. The ladder's early rungs are deliberately close together so the day-2 return has an immediate, visible payoff.

Action · Monetization

Ethical monetization, written as hard rules

A calm product dies the moment monetization turns predatory. So I wrote the constraints into the PRD as non-negotiable rules, designed around dignity rather than whale extraction, because for this audience trust is the retention mechanic.

block

No loot boxes

No randomized purchases, ever.

timer_off

No FOMO countdowns

No manufactured urgency or expiring deals.

filter_2

Max 2 prompts per session

And never during the ritual itself.

favorite

Dignity pricing

Priced for fairness, not for extracting whales.

Action · Decision gate

A fail-fast gate, set before launch

gavel

If D1 return is under 25% by day 14, stop and redesign

I committed to the kill threshold before launch, when I could still be objective. If the core return behavior was not there in two weeks, the answer was not to add features and hope; it was to stop, diagnose the funnel, and redesign. A pre-set gate is what turns "I am attached to this" into an evidence-based decision.

Action · Architecture & Build

Then I specced the hard parts and built it

The once-a-day promise only works if the engineering is honest about time and privacy. I designed the architecture for the edge cases that quietly break habit products, then built the whole thing solo in 10 days.

schema

Session-gating state machine

The single source of truth for locked, active, complete, and locked-until-tomorrow, so the cap and the daily rule cannot be bypassed.

schedule

Server-authoritative time

"Once per day" is decided on the server, with explicit handling for DST changes and players who travel across time zones, the edge cases that silently double or deny sessions.

lock_person

Privacy-first journal

A reflective journal designed privacy-first, with text moderation, because a calm space has to be a safe one.

warning

Risk register: I documented the failure modes up front, from DataStore throttling under load to a monetization prompt breaking the calm tone, each with a mitigation, so a bad week would be a plan rather than a scramble.

Result

A platform thesis, turned into a shipped product

insights

1 shift

platform incentive, designed around

description

Full PRD

before any code

rocket_launch

10 days

designed & shipped solo

verified

The real result is the product judgment: I read a platform-level incentive shift before the market did, turned it into a differentiated concept built on a constraint everyone else avoided, specified it with the rigor of an enterprise PRD, set an ethical monetization model and a fail-fast gate, and shipped it solo in 10 days. The D1 numbers here are targets, not a scoreboard. The transferable outcome is a product I could defend strategically at every layer, from platform economics down to the time-zone edge cases, which is the same judgment a TPM or PM brings to a roadmap.

Reflection

What this proved about product strategy

policy

Read the platform's incentives

The biggest opportunities hide in what a platform just started paying for and the market has not noticed.

lock_clock

The constraint is the strategy

A sharp limit that competitors avoid is a moat. Differentiation is often a deliberate "no."

volunteer_activism

Design ethics in, not on

For a trust-based product, the monetization rules are a feature, written into the spec, not an afterthought.

arrow_backAll projects mailDiscuss this work