← All projects · Focus Kitten · Case study · Sofia Zaitseva
Turning the short-video reward loop into a reason to finish work.
macOS menu bar app · B2C subscription · Solo founder · On the Mac App Store since 18 September 2026
The listing on launch day, 18 September 2026.
Short videos taught people's attention to expect a reward every few seconds. Focus Kitten puts a timer in the Mac menu bar, with a kitten walking beside it, and pays coins for every finished session. The coins furnish the kitten's room. I ran the research, set the scope and the economy, designed the product, built it in Swift with Claude Code, priced it and took it through Apple's review.
- Role
- Founder and product designer, working alone
- Tools
- Figma, Swift with Claude Code, Recraft, Nano Banana, Mixpanel
- Timeline
- 2026 – now, live on the App Store since 18 Sep
- Platform
- macOS 14 and newer; iPhone version in prototype
People lose focus within minutes because short videos pay out every few seconds.
Focus Kitten uses the same loop, session, coins, something new for the room, and points it at work. I built it first for myself, because I was losing my own focus to my phone.
| Who it's for | What they need |
|---|---|
| Students on a Mac, many with ADHD | To start, and to stay with one task past the first five minutes. |
| Remote junior and mid-level workers | To see how long they've worked without opening another tab. |
| People who work alone | Someone next to them while they work. |
Four competitors and their reviews showed the gap: no Mac app let you collect anything for focus time.
| App | What it does | What I took or avoided |
|---|---|---|
| Mac Pet macOS | A pet in the menu bar with a pomodoro timer and streaks. Nothing to earn or collect. | Took the always-visible timer. It already promises "no penalty", so that couldn't be my difference. |
| Focus Friend iOS, Android | A character knits while you focus, and you earn decor. Google Play's app of the year. | Took the idea of earning decor with focus time. |
| Study Bunny iOS, Android | Coins for focus buy treats and decor. Reviews call it money-hungry because of the ads. | Avoided ads. Avoided losing progress, another common complaint. |
| Forest iOS, Android | A tree dies if you leave the app mid-session. | Avoided punishment, "give up" wording and a long onboarding. |
The loop of focus, coins and decor worked on phones, and no desktop app had it.
Positioning: Focus Friend for the Mac, living in the menu bar.
The constraints I designed within
Every feature had to be something I could design, build and support alone.
The menu bar is the main surface, and at that size a pet reads as a dot. So the countdown sits next to it.
I had never done marketing and had no money for ads, so every channel had to be free: Instagram, my site and the App Store listing.
I set one goal and one number to measure it before I wrote any code.
Help people on a Mac finish the focus session they start, and bring them back the next day.
Focus minutes per week per active user.
It moves only when people focus and come back, so opening the app doesn't count. Retention at day 1, 7 and 30, the first session and the first purchase back it up.
Coins only for a finished session, and longer sessions pay more per minute.
Stopping early costs nothing: you just don't get the reward. Coins never go down and never expire, and the only place to spend them is the shop.
- Hovering over Stop shows "Stop now = no coins for this session 🐾". A nudge, with nothing taken away.
- When a session ends, the kitten asks: keep going or take a break? Keep going adds bonus focus time.
- Anything you buy shows on the kitten or in the room at once.
Levels
No levels. Coins and the shop were the only reward.
I added levels to keep people motivated, and new rooms open with them. Level 7 opens the second room, about 21 hours of focus in, and level 12 the third, about 59 hours in.
People name their kitten, pick its coat and give it a character.
Six coats and three characters. The character decides how the kitten talks, so the same moment sounds different for each person.
The end of a session, in three characters
"So proud of you. Keep going or rest a little? 💛"
"We did it! Sort of! Another round or a break?"
"Not bad. Keep going, or crawling off to a break?"
From my own checkout to the App Store, and from lifetime access to a yearly plan.
| June · my site | September · App Store | |
|---|---|---|
| Price | $3 a month or $8 for life | $2.99 a month or $19.99 a year |
| Free trial | 7 days | 14 days, no card |
| Who takes payment | Paddle, with licence keys I issued | Apple |
- Lifetime became a yearly plan. A performance marketer I consulted pointed out that $8 for life makes $3 a month look like a bad deal.
- The price stayed low. Rivals charge more, StudyStream $6.99 a month and Rize from $9.99, and students are the first audience.
- Prices follow local incomes. I set them by hand for 43 countries, such as ₹99 a month in India and $1.49 in Ukraine.
From rejection to launch
-
1 Sep · Rejected
Apple read the gift-code field as a way to pay outside the store.
IterationThe App Store build ships without gift codes.
LessonAny way to unlock the app outside Apple's store blocks review.
-
8 Sep · Rejected
Apple's payment sheet took focus, and the menu bar panel closed mid-purchase.
IterationThe panel stays open during purchases and Apple ID sign-in.
LessonTest the purchase through TestFlight before every submission.
-
18 Sep · Live
Version 2.1 passed review and went on sale in 175 countries.
I held back an approved build so the listing launched complete.
Apple shows a new app higher in search for its first days, and only once. When version 2.0 was approved on 2 September, I withdrew it and resubmitted with a new icon, six screenshots, a preview video and a rewritten listing.
- Title "Focus Kitten: Menu Bar Timer". Apple weighs the title most in search, so it carries the words people type.
- Subtitle "ADHD Focus & Pomodoro Pet" adds the next search terms and the segment.
- Keywords never repeat words from the title or subtitle, which Apple already indexes.
- Icon: the kitten over a 25:00 timer replaced a plain clock, so the icon says what's inside.
I track each step from the first visit to payment, to see where people drop off.
Mixpanel tracks the app and the website, and GA4 and Search Console cover search. My own devices carry a flag, so they never count.
| What I track | Why |
|---|---|
| Focus minutes per active person per week | The north-star metric. |
| Share of website visitors on a Mac | Only they can install the app. |
| Each onboarding step, from start to finish | Shows the step where new people give up. |
| People active on seven or more days | Shows whether the app becomes a habit. |
| Paywall, checkout and purchase | Shows where a buyer changes their mind. |
How the numbers changed onboarding
The first paying customer clicked through the coats 25 times, switching between orange and beige. In the basket the kitten showed only its ears, so picking a colour was guesswork.
A Preview kitten button takes the whole kitten out of the basket. The next seven people picked a coat in 8 clicks on average.
Live on the Mac App Store, twelve weeks after the first line of code.
| Area | Result |
|---|---|
| Product | Timer and stopwatch in the menu bar, 3 rooms, 6 coats, 3 characters, tasks and tags, 3 music channels, stats by day, week, month and all time |
| Business | A subscription through the App Store with a 14-day free trial, in 175 countries |
| Review | Approved after two rejections, both fixed |
| Website | focuskitten.com, with comparison pages and blog posts written for search |
| Next | An iPhone version, now in prototype |
- I ran the whole cycle alone: research, scope, economy, design, code, pricing, review and launch.
- Every major decision has a dated note with its reason, including the ones I reversed.
- The App Store launch is the first real test of the loop. I track retention by cohort from launch day.
What I'd do differently, and what paid off
- Work more with marketing people, and learn how B2C products are marketed. I started with no marketing experience, and the first data showed traffic I hadn't planned for: most people who clicked Download were on a phone.
- Make assets in Google Flow instead of Recraft. Flow is free.
- Paying an artist was worth it. Generated assets came out uneven, so I hired an artist to build the rooms in 3D. The budget covered only the rooms, and the rest is still generated.
Happy to walk your team through any part of this.