AI Product Build Case Study · Live Your WHY.os

Nobody Assigned This.
I Found the Gap and Shipped the Product.

People finish the WHY.os assessment lit up, and then we lose them. Email could not hold them and there was no product between the assessment and the next thing we sell. So I designed a daily habit, built the app around it, and shipped it to production by myself. It is now a two-tier product with an AI coach, a live member community, a free acquisition funnel, and the analytics layer I use to run all of it.

Idea → live
Working app in two days, then eight weeks of building it into a real product
2 tiers, live
Free WHY tier with a paid unlock path, both running in production
In beta
Real members using it daily while the acquisition funnel fills

The assessment lands. Then we lose them.

The WHY Institute sells self-discovery. Someone takes the WHY, or the deeper WHY.os, and the reaction is consistently the same: this is exactly right, this explains how I work. That reaction is our best asset and we were doing almost nothing with it.

What happened next was a drop-off I watched every month. People finished the assessment, downloaded a PDF, and drifted. When we marketed to them afterward they had already cooled off. Email was the only tool we had for the space between purchases, and email was not holding anyone. There was no place for them to go and no reason to come back tomorrow.

The commercial version of the problem: we had a $97 WHY.os Discovery and a Live Your WHY.os course further up the ladder, and nothing in between to carry a person from one to the other. The ascension step had no product in it.

The insight was never the problem. Keeping it switched on after the PDF closed was the problem.

One small move a day, in a voice they already trust.

I did not pitch this. I told one coworker, Bella, and started building. The hardest part was not the code, it was deciding what a person in our audience actually needs daily: something small enough to finish, personal enough to feel written for them, and cumulative enough that skipping it feels like losing something.

That settled the core loop. Every morning the app writes one short reflection tied to your specific WHY and one tiny action for the single life area you chose to work on. You tap whether you did it, optionally rate how aligned it felt, and optionally leave a note. Tomorrow's message reads what you actually did today and builds on it.

Two deliberate constraints came out of that decision. There is no regenerate button, because a person who rerolls until they get an easy task breaks the only thing that makes the streak mean anything. And the coach never sells inside the coaching. The app can sell in its own surfaces; Gary does not.

What it is
  • A daily mirror and one nudge
  • Written from your exact WHY · HOW · WHAT
  • Cumulative — today references yesterday
  • Finishable in a couple of minutes
What it is not
  • A course to complete
  • A productivity or habit tracker
  • A therapist or crisis service
  • A place where the coach pitches you

Gary Sanchez, who created the methodology, called it something the Institute had needed for a long time. That reaction is what turned a side build into a real product with a roadmap.

The daily loop, and everything that grew around it.

Every message is generated live against the member's three-archetype stack and their recent history. There are 392 possible WHY · HOW · WHAT combinations and no templated copy for any of them.

The Today screen of Live Your WHY.os — a daily note written from the member's WHY, one small action, a check-in, and a progress thread of past check-ins
Today: one note written from your WHY, one small move for your focus area, a one-tap check-in, and the progress thread that tomorrow's message reads from.
Animated tour of Live Your WHY.os cycling through the Today screen, Life Wheel, Ask Gary chat, Community feed, Resources library and the upgrade modal
A pass through the member experience: daily loop, Life Wheel, coach, community, resources, and the upgrade path a free member hits.
The Life Wheel screen — seven life areas rated one to ten, with one chosen as the focus area
Life Wheel: rate seven areas, choose one focus. That choice is what the daily action targets.
Ask Gary chat — an AI coach answering a question by reasoning from the member's WHY and HOW archetypes
Ask Gary: open chat with the same coach persona, reasoning from your archetypes rather than giving generic advice.
The Community feed — a weekly prompt, post categories, and member posts. Member identity and post content blurred for privacy.
Community: a weekly prompt, categorized posts, and reaction mechanics. Member names and post content blurred here for privacy.
The Resources library — guides, journals and printables organized by how the member wants to use their WHY.os
Resources: the guides and printables, organized by what a member is trying to use their WHY.os for.

The profile holds the stack every other surface reasons from, in plain language rather than jargon.

The Profile screen showing a member's WHY, HOW and WHAT archetypes plus their WHY.os written in plain language
Profile: WHY · HOW · WHAT, plus the plain-language version of what that combination means.

I built it for one job. The gaps kept showing me the next one.

The original brief was narrow: nurture people after the WHY.os so they move toward the course. Once it was live and I was watching how people actually moved through it, the same product kept answering bigger questions, and I kept building.

  • Community, because a daily habit is easier with other people in it
    Posts, weekly prompts, categories, and reactions. Shipped deliberately rough so real members could tell me what it needs before I polished the wrong thing.
  • A free tier, because the same loop nurtures WHY-only people too
    The daily coaching had to work from a single archetype instead of three, without ever inventing or implying the HOW and WHAT the member has not bought. That is a separate prompt path, a separate identity model, and a server-side guard so a hand-entered stack can never fabricate paid content.
  • Locks and an upgrade path, because free needs an honest edge
    HOW and WHAT show as locked, premium resources stay visible but greyed with the file links stripped server-side, and Ask Gary gives three lifetime questions before it locks. The counter is enforced in the database so deleting a chat never refunds a question.
  • An acquisition funnel, because the app needed its own front door
    A public quiz-to-result funnel that hands people a free WHY, then offers the free account only after the paid WHY.os offer has had its shot. Protecting the $97 purchase decision was the constraint the whole sequence had to respect.
  • Onboarding, because our audience skews older and confusion is churn
    A guided first run so nobody lands on an empty screen wondering what the app wants from them.
  • Email and tracking, because none of the above is steerable blind
    A typed event catalog, funnel step timestamps as the source of truth, and behavior-triggered lifecycle email built on top of them.
Free tier profile showing the WHY visible and the HOW and WHAT locked behind the paid WHY.os
Free tier: the WHY is theirs, the HOW and WHAT are locked. The plain-language statement adapts to what they actually own.
The in-app upgrade modal explaining that the WHY is one third of the picture
The single in-app paywall, mounted from every locked surface so the upgrade story is written once.
Ask Gary on the free tier showing three of three free questions remaining
Three lifetime questions on the free tier, counted server-side rather than derived from message history.
The public discover funnel entry page offering a free WHY assessment
The public front door: two qualifying questions, the free assessment, then a result page built from the answers.

An AI coach talking to real people needs a floor under it.

The moment you put a generative coach in front of members and invite them to write about how their life is going, some of what they write will be heavy. I treated that as a design requirement rather than a disclaimer.

  • Screening happens before generation. Chat messages and check-in notes are screened first; a positive hit never reaches the coaching model at all and returns a care-only response with region-appropriate resources.
  • Flagged content is quarantined permanently. It is excluded from every future prompt, so a hard day never becomes coaching material later.
  • Crisis never touches the mechanics. It cannot break a streak, and it never titles a chat thread in the sidebar.
  • The boundary is stated in the product, on the coach surface and in the footer, rather than buried in terms.

Qualified human review of the crisis copy and the region resource list is a blocking item on my launch checklist. Some things do not ship on my say-so alone.

I built the admin side so the product can be run, not guessed at.

This is the marketing operations half of the build. A product I cannot measure is a product I cannot improve, so the analytics surface was built alongside the member experience rather than bolted on after.

Events are a typed catalog enforced at compile time, roughly 33 tracked events split between client interactions and server-truth writes, with user identity always resolved server-side so a browser can never claim to be someone else.

Admin engagement dashboard with member counts blurred, a daily active members chart, and feature activity by event type
Engagement: membership, daily actives, and which features actually get used. Counts blurred here — the shape is the point.
Admin funnel dashboard showing weekly funnel steps by traffic source and a library of editable copy blocks
Funnel: every step from quiz start to purchase to free claim, by source, from timestamps rather than inferred sessions. Below it, the copy blocks the funnel pages compose from at render time, so campaign copy changes without a deploy.
Admin click engagement dashboard listing discrete member interactions such as reactions, downloads and thread starts
Click engagement: the discrete taps, kept separate from page views so an intent signal is never confused with a pageview.
Admin member roster with names and emails blurred, showing archetype, last active, streak and activity columns
Member roster with per-member activity. Names and emails blurred; the tier and cohort chips are what I actually work from.
The free tier daily screen prompting a new member to fill their Life Wheel before the daily practice unlocks
The one gate before the daily loop starts, which is also the first thing I watch for drop-off on new members.

Every account also carries a permanent cohort marker set at signup. When subscriptions eventually launch, I flip the default rather than migrating anyone, and the beta group keeps its marker forever so any founding perk can key off it.

The direction I am building toward is agents on top of this data: a scheduled audit that reads the numbers, reports what moved, and proposes the next change instead of waiting for me to go looking.

A production stack, built with AI, owned end to end.

I am a marketing operations strategist, not a career engineer. I built this in Claude Code with Fable 5 doing the heavy lifting on implementation while I made every product, data, and architecture decision and reviewed what went in. That is worth stating plainly, because the useful skill here is knowing what to build, what the rules are, and what good looks like when it comes back.

  • Next.js 16 with React 19 and TypeScript, deployed on Render with a strict dev and production split so live member data is never touched while building.
  • Supabase Postgres with row-level security on every member table, 34 migrations applied across two environments, and entitlement flags pinned so an account cannot grant itself access.
  • Claude for every generated message, behind a single runtime model constant. Swapping models is a one-line environment change rather than a code change.
  • Layered prompt caching — a static methodology pack cached once, per-member context cached per person, and only the day's turn volatile — so cost and latency stay flat as membership grows.
  • Generation-then-write ordering on the daily message: the API call happens first and the row is only written on success, so a failure leaves nothing behind and stays retryable.
  • A render-time copy system for funnel pages, so marketing copy is edited and published without a deploy.
  • Transactional email on a verified sending domain, with a one-shot recovery send driven by a scheduled job and stamped atomically so nobody can be emailed twice.

Where I brought other people in

The concept, product design, UX, database, prompts, funnel, onboarding, admin tooling, and deployment were mine. I pulled in our tech team for the one thing I could not do alone: signed API calls from the main dashboard app, which I do not have access to. Gary's methodology is the Institute's intellectual property and the coach reasons only from the canonical pack, never from anything I wrote myself.

I also handed the rough first version to the team on purpose. When you have taken something from strategy to execution yourself, you lose the ability to see where a new person gets confused. They found the spots where the flow did not explain itself, and those became the onboarding.

The invite gate that was never actually gating.

Six weeks in, a new migration failed because it depended on tables that did not exist. An earlier migration had been written and committed but never applied to either environment, and nothing had ever tested the assumption that it had been.

The consequence: the invite gate I believed had been protecting signups since June had never gated anything. Every organic signup in that window had walked straight in with full entitlement. I found it, wrote an idempotent repair, applied it to both environments in order, verified the live schema instead of trusting the migration folder, and wrote the lesson into the project rules so no future build thread repeats it.

The habit that came out of it is the part I kept: check what is actually deployed, not what the repository says should be. The migrations folder records intent. Only the live schema records truth.

The other correction was structural. I had built straight against production early on, which is fine for a weekend prototype and not fine once real members are in it. Building a proper staging environment and a strict dev-to-production migration order cost me time I would rather have spent shipping, and it is the reason the free tier and funnel could go out without touching live data.

In beta, live, and filling on purpose.

The app is in production. The community is live with real members posting. The free tier and its funnel are enabled, with locked surfaces and the upgrade path working end to end. Access is invite-gated on purpose while the beta cohort is small, because I would rather learn from a group I can actually talk to than open the doors and watch a churn number.

Today the paid tier means someone bought the full WHY.os Discovery, and the app comes with it. The open commercial question is whether this becomes a subscription product in its own right. My position is that we earn that by getting the experience right with beta members first, then pricing it, rather than the other way around.

  • Now: beta members using the daily loop, the community, and the coach, with every interaction instrumented.
  • Next: finishing the upsell pages so free-funnel traffic reaches the app without undercutting the WHY.os purchase decision.
  • Then: behavior-triggered lifecycle messaging built on the event catalog, and agent-run audits on top of the admin data.
  • Open: whether the product supports its own subscription, decided on beta evidence rather than optimism.

Found the gap, made the call, shipped the thing, instrumented it.

Nobody scoped this, briefed it, or asked for it. I saw a retention problem in our own funnel, decided what would actually fix it, built it, put it in front of real people, and built the measurement to tell me whether I was right. Then I kept going as the product got bigger than the brief.

That is the same instinct I bring to marketing operations work: find where revenue leaks, design the system that stops it, and make the result measurable enough to argue about with data.

Strategy, product design, build, launch, and the analytics to run it — one person, start to finish, in production.