Inspiration
Most adults are not moving enough, and the share is rising. 31.3% of adults worldwide were insufficiently active in 2022, up from 23.4% in 2000. On current trends the world will miss its own 2030 target, with a probability the authors put below one in a hundred. (Strain et al., Lancet Global Health, 2024.)
That failure has a price tag. WHO expects almost 500 million new cases of heart disease, obesity, diabetes and other noncommunicable diseases attributable to physical inactivity between 2020 and 2030, and puts the cost of treating them at nearly US$300 billion by 2030, around US$27 billion a year. (WHO, 2022.) An earlier global analysis in The Lancet costed inactivity to health systems at INT$53.8 billion in a single year, 2013, plus INT$13.7 billion in lost productivity. (Ding et al., 2016.)
None of that is a content shortage. There has never been more free exercise instruction in the world.
So I went looking for where people actually stall. I read 511 posts across r/xxfitness, r/yoga and r/pilates. The largest group, 124 posts, was people buried in advice that contradicts itself. 136 posts were about rest, recovery and burning out. 63 were about a body that had changed, through pregnancy, injury or age, meeting a plan that assumed it had not. And 24 posts, carrying 1,451 upvotes and comments between them, said plainly that they do not trust AI-written fitness content.
That last group set the shape of the app. The problem is not a shortage of plans. It is that at 7am, tired and slightly sore, you are asked to pick one out of forty, and the honest answer is often a walk, which no app recommends because a walk does not sell a subscription.
Wherefore makes the choice, once a day, and shows its working.
What it does
The hard part is not the exercise. It is the ten seconds before it, when you have to decide what your body can take today and you do not have what you need to decide well. Most people resolve that by doing nothing, and they keep resolving it that way. A study of 389,481 real fitness app users found 10.1% of beginners still training a year later. For women it was 7.9%. Across the whole cohort the median time to dropout was 19 weeks. (Conti et al., Frontiers in Sports and Active Living, 2026.)
Wherefore takes the decision away. It asks four things and answers with one session.
The morning check-in: how is your energy, is anything sore or painful, how did you sleep, how long do you have. Ten, twenty, thirty or forty-five minutes. Then one answer. Pilates mat, mobility, gentle strength, a walk, breathing, or a real recovery day. One sentence explains it, in the app's own words: "Because your energy and sleep are both low and you slept under 6 hours: today is a recovery day." You can ask for one alternative, or pick anything from the library yourself.
The player shows the move you are on, the one coming next, and a timer. "Make it easier" stays on screen instead of being buried. During breathing moves the ring breathes at your pace. Afterwards you say whether it was easier than expected, about right, or too much, and tomorrow's plan takes that in.
There are no streaks. Nothing breaks when you miss a week. Come back after a gap and it offers something shorter to restart with, which is the opposite of what a streak does to a person who has been away.
Plans come from written rules, and the rules and the public health guidance behind them are readable in the app, under You. Mark pain, or say you are pregnant, postpartum or healing from an injury, and it stays with gentler sessions. Say the pain is sharp, new or getting worse and it stops. It does not offer you something lighter instead. It tells you to skip movement today and see someone. There is no AI anywhere in it.
With permission it reads last night's sleep and yesterday's steps from Health Connect, so one question is already answered when you open it. It never writes to Health Connect. It can find a free slot in your calendar and put the session in it. Every connection is optional and the app is whole without them.
Wherefore is not medical advice and does not replace a clinician. It says so on the screen where that matters most.
How I built it
A plan you cannot inspect is a plan you cannot argue with, and a person deciding whether to exercise while their back hurts deserves to know what the answer rested on. That ruled out a model before I wrote a line.
Kotlin and Jetpack Compose with Material 3. The picker is a rule engine: four answers in, one session out, deterministic. Same answers tomorrow, same plan tomorrow. I would defend that even if a model scored better on average, because "it was picked for you" is not an answer anyone can check.
Health Connect through connect-client for sleep and steps, read only. The calendar provider for finding a real free slot. OneSignal for the daily reminder at an hour you choose.
132 tests, with the safety rules tested hardest. Pain, pregnancy, postpartum and injury each have tests asserting the gentler branch, and the stop rules have a suite of their own. There are screenshot tests too, including one that runs the whole check-in at the largest Android text size, because an app for tired people has to hold up for people who need big type.
How Wherefore uses RevenueCat
The thing that gets someone moving in the morning is the first thing most fitness apps put behind a paywall, and they ask on launch, before the app has done anything. Then they lose almost everyone anyway: 10.1% of beginners on one large fitness app were still training at twelve months. (Conti et al., 2026.) Charging at the door does not fix that. It just charges the few who were going to stay.
So the free side of Wherefore is a whole app, permanently. The daily check-in, one plan a day from the 12 free sessions, the reason, one alternative, the player, the written rules, and every connection. Someone who checks in each morning and does what it says never meets the paywall.
Plus opens the other 22 sessions: the Pilates path in order, the joint-friendly and balance sets, and the 45-minute sessions. Yearly with a 7-day trial, monthly, or pay once and keep it, because some people would rather not subscribe to their own body.
Underneath: RevenueCat's Android SDK 10.21.1 with purchases-ui for the paywall, and purchases-store-galaxy for Galaxy Store billing. Entitlement plus, offering default, packages $rc_annual, $rc_monthly and $rc_lifetime, yearly first so it lands as the primary button. The paywall opens when you tap a session that is not free. It arrives at the moment someone has already decided they want more, not at the moment they are deciding whether to bother.
Challenges I ran into
RevenueCat's AI-editor paywalls kept falling back to the default template, reporting only "validation errors" with no detail, even at verbose logging. Guessing was getting nowhere, so I pulled the offerings JSON and decoded it offline using the SDK's own classes. That gave me the cause: Terms and Privacy buttons with null URLs make the SDK throw during decoding. Removing them fixed it. A couple of variants still fell back for reasons I could not pin down, and I shipped the default template rather than claim a fix I did not have.
The harder challenge was restraint. Every instinct in this category says add streaks, badges, a feed, a weekly score. All of them punish the person who missed four days, who is exactly the person this app is for. Saying no to each took longer than building any of them would have.
Accomplishments that I'm proud of
An app that will tell you to rest, and mean it. Nothing in it profits from you doing more than your body can take today, because nothing in it counts.
The rules are readable inside the app, sourced to public health guidance, and the same four answers always give the same plan. You can check the app against its own sources without leaving it.
And the free tier is the product, not a trailer for one. One plan a day, forever, with the reason attached.
It shipped on 15 September 2026 and has 128 downloads.
What I learned
Writing the "why" sentence was harder than writing the picker. The rule engine took a day. The sentence took a week, because it has to be short enough to read at 7am, specific enough to be believed, and honest when the answer is "do less than you wanted to". A plan you do not believe is a plan you skip. One accurate sentence turned out to carry more weight than any amount of programme design.
I also learned that removing a feature is a decision you defend again every time the app feels quiet.
What's next
Sessions built around a named goal, like getting back to running after an injury, with the same readable rules behind them.
A weekly look back drawn from your own check-ins, showing what your body actually did, rather than how far you fell short of a target someone else set.
And more of the guidance surfaced in plain words, so the sources page reads like something a person wrote rather than a citation list.
Built With
- android
- jetpack-compose
- kotlin
- purchases-android
- revenuecat
Log in or sign up for Devpost to join the conversation.