# RIPEN — case study by Anton Kozionov

> A habit tracker where your year grows as one tree: from research to a Google Play submission in six weeks

- Role: Solo: research, product, design and release
- Team: Solo; Claude Code agents write the code
- Timeline: Aug 19 – Sep 28, 2026 (6 weeks)
- Status: Android: Oct 13
- Tags: iOS & Android, solo
- Link: [ripen.day](https://ripen.day)
- Case study page: https://kodsgn.com/work/ripen/

## Highlights

- Research agents analysed 873 negative reviews before any design
- Habit card cut from 24 objects to 4
- 7 languages; Android launches Oct 13, iOS waits on Apple's trader check

People rarely quit habit trackers over the habit. They quit when a streak breaks or a subscription renews. RIPEN grows your year as one tree, where a missed day drops a leaf, not your progress, and you pay once. Six weeks from research to a Google Play submission; launch is October 13.

[Image: Store screen: "your whole year, as one tree", a monochrome tree on a pale sky]
[Image: Store screen: "miss a day and it falls", leaves dropping from the tree]
[Image: Store screen: "sixty-six days, and it fruits", a gold fruit on a branch at sunset]

*The whole mechanic fits in three store screens: leaf, fall, fruit.*

## People leave over subscriptions and broken streaks, and the second group leaves silently

Before any design, I set the questions and research agents analysed 873 one- and two-star reviews of habit trackers and about 25 Reddit threads. Subscriptions topped the complaints, in 256 reviews, and 67 asked outright for a one-time price: *"I would gladly pay a one-time $20… I can't justify this kind of money for what boils down to a checklist app."*

Streak anxiety came second, yet only 11 reviews used the word "streak". People whose streak breaks don't write reviews. They just leave, and they say why on Reddit.

## Two of my hypotheses failed, and the product changed with them

I expected identity to sell, but only two people in the sample mentioned it. Identity keeps people without bringing them in. So it lives in the tree's structure, where each branch grows from "I am someone who…", not in the headline. I also expected complaints about too many stats. Instead, people wanted one number rather than a daily verdict, so I cut the daily numbers.

At least ten apps give you a garden with one plant per habit. None gave you one tree for a whole life. The idea is easy to copy; three years of your own growth isn't.

## You pay once, and nothing you've grown is behind a paywall

RIPEN Pro and two extras are one-time purchases. There's no trial, because a trial's end would mean cutting branches off. The hardest call was a paid leaf-sweep. My own research warned against it:

> Paying to blow away leaves every time monetises guilt in a niche where guilt is the main reason people delete.

I shipped it narrower. It's one purchase, not a fee for every miss, and fallen leaves compost by themselves after 180 days. The bare branch, your real history, is never touched. You pay to tidy the ground, not to erase a miss.

## One fruit per branch at 66 days, because four thresholds looked like a rash

Fruit at 14, 30, 100 and 365 days meant about 120 fruits over a long run. Gold is the only colour on a monochrome tree, and it "turned into a rash." Now each branch gets one fruit at 66 days. That's the median time for a habit to become automatic in Lally's study at UCL.

## Every promised leaf stays visible, even if the crown looks less tidy

The app promises a fruit when a branch holds 66 leaves. But the renderer hid leaves under old wood to keep it clean, so only 44 of 66 were drawn at the moment of fruit. Anyone who counted would catch the app lying. I compared four leaf rules on one tree across 1 to 36 months, and chose to move each leaf to the tip of its twig. Now the leaves you see match the leaves you've earned, at any age.

## The habit card went from 24 objects to 4

[Image: Store screen: "four lines and it's planted", the new habit form]
[Image: Store screen: "every day you keep is a leaf", habit cards with a week of check boxes]


A review counted 24 objects, 11 font sizes and four counters for one scale.

> The fact "marked today" was said four ways at once (checkmark, button fill, word change, leaf growth). A miss was said five ways.

What's left is the name, one line with one number, the week and today's decision. "Cut" moved off the card, because a forever decision shouldn't sit next to a daily tap.

## A beta tester's "I don't get it" brought the onboarding back

On September 13 I cut the onboarding from five slides to three. Two days later it no longer said what the app was, and a closed-beta tester put it bluntly: "I don't get it at all." It grew to six slides that open on an example tree already growing, five days further on each slide. You see what you'll grow before you plant.

## Screen readers, large text and reduced motion are checked by tests

A screen-reader test requires every touch target to have a name and the right role. A large-text test caught button labels being clipped even at normal size, so buttons now grow with their text. An onboarding contrast test checks each slide where the camera stops. With reduced motion on, leaves don't fall. I haven't yet checked the app with VoiceOver and TalkBack on a real phone.

## How I worked

I decide anything a person sees or touches. I direct AI agents in Claude Code, and they write the code. Every decision is logged with what we rejected:

> Rejected options matter more than accepted ones: almost every "obvious" idea has already been tried and broke for a specific reason.

The second rule is "measure, don't guess".

[Image: Hand-drawn perspective lines, horizon and light rays over an early scene]

*Direction by drawing: my perspective sketch for the early world scene, Aug 26.*

Agents' reports get checked too. One reported "built on the phone" seven times while the script was failing. Since then, only the script's last line counts as success.

## Where it is now

[Image: Store screen: "no account. no sign-up. nothing measured.", the privacy sheet]
[Image: Store screen: "real sun, real moon, real weather", the tree at dusk and at night]


Launch is October 13 on Google Play: production was submitted on September 28 after a 14-day closed test. The App Store release is waiting on Apple's EU trader verification; iOS runs on external TestFlight until then. There are no in-app analytics and no accounts, so I'll judge the launch by store data: installs in the first 30 days and the share of people who buy Pro. I'll also read every review for the two complaints the research started from, streak guilt and subscriptions.

## What I'd do differently

- **Check copy against code from day one.** On September 28 both descriptions of the fruit rule were wrong. Misses take progress back by one, two, then three, and neither said so.
- **Start distribution earlier.** Social accounts went live nine days late, which helped push launch back a week.
