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.
- A daily mirror and one nudge
- Written from your exact WHY · HOW · WHAT
- Cumulative — today references yesterday
- Finishable in a couple of minutes
- 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 profile holds the stack every other surface reasons from, in plain language rather than jargon.
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 itPosts, 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 tooThe 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 edgeHOW 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 doorA 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 churnA 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 blindA typed event catalog, funnel step timestamps as the source of truth, and behavior-triggered lifecycle email built on top of them.
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.
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.