What it is Ritsu is a habit-building app for people who lose their mornings and nights to social media. Kuu, a small AI zen monk who lives by a pond, helps you design days that aren't swept away by your phone.

It is not just an app blocker. Ritsu builds a behavior-change loop into the day: put the phone down → journal or breathe → Kuu writes back → reflect.

How it works

  • Morning and night quiet hours: Apple Screen Time (FamilyControls / ManagedSettings / DeviceActivity) closes the apps you choose on a schedule you set, with custom weekdays. During those hours only Ritsu and your allowed apps open.
  • Focus Timer: pick a length, and your distracting apps stay shielded until it ends. A lotus bud in the pond unfurls as minutes pass and blooms when the session completes.
  • Journaling with an AI reply: write what's on your mind. Kuu reads it and answers in three beats — empathy, a quiet sorting of your thoughts, and one small next step.
  • Breathing and meditation (1–5 minutes) as the "off ramp" when you want to open a blocked app.
  • Custom shield screens: the block screen changes by time of day (morning gold, focus green, night deep green) and offers "start a meditation" or "back to focus" instead of a dead end.
  • 5-question check-in that maps you to a type and proposes a plan.
  • Reflection view of the hours you won back.

Monetization (RevenueCat)

  • Ritsu Pro subscription via RevenueCat: Monthly $4.99 and Yearly $34.99, both with a 3-day free trial.
  • Pro unlocks scheduled morning/night blocking, unlimited focus sessions, and journaling with Kuu's AI replies.
  • Free tier: limited focus sessions, supported by AdMob banners and an interstitial after a session (ads hidden for trial and Pro users).
  • RevenueCat webhooks sync subscription state to Firestore so each user's status (trial, active, sandbox) is visible in an internal dashboard.
  • Apple Search Ads attribution is passed through RevenueCat's AdServices integration.

How we built it

  • SwiftUI, StoreKit 2 via the RevenueCat SDK, Apple Screen Time API with four extensions (monitor, shield configuration, shield action, report).
  • Firebase Cloud Functions (asia-northeast1) proxy the AI reply (OpenAI GPT-5.1 with a three-part zen prompt) and log events, so the app ships with no analytics SDK.
  • Kuu's illustrations and the pond/lotus scenes are original assets; the app supports iPhone and iPad.

Shipping story (the hard part) Ritsu was first submitted on Aug 20 and rejected under guideline 4.3(a) "design spam" three times. A phone call with App Review revealed it was a code-level similarity flag, not UX. We stripped every third-party SDK, shipped v1.0 on Sep 14 with a pure-Apple binary, then re-introduced RevenueCat in v1.0.1 (Sep 16) after approval — it passed on the first try. v1.1 (Sep 18) added ads and richer analytics; v1.2 (Sep 19) shipped the redesigned shield screens and Apple Search Ads attribution. Four releases in six days after a month of rejections.

Post-launch metrics (Sep 14 – Sep 30)

  • 4 App Store releases (v1.0 → v1.2) in the first week
  • ~36 organic/ASA installs with events, 0 paid marketing spend before Sep 25
  • Onboarding: 94% start the check-in, 63% reach their diagnosis result, 54% reach the paywall, 37% complete setup (Screen Time + notification permission)
  • 26% start a focus session; first Apple Search Ads campaign live since late September
  • Learned: the biggest drop is after the first home screen — next iteration targets the first focus session and a day-2 return

What's next

  • Weekly report (already built, gated behind a feature flag)
  • "Emergency unlock" consumable via RevenueCat: pay a small fee you set yourself to break your own promise for a few minutes
  • Tuning the free/paid split from RevenueCat trial and conversion data

Note for judges The app is available in English and Japanese; the demo video and screenshots show the English UI. Both Ritsu Pro plans (Monthly $4.99, Yearly $34.99) start with a 3-day free trial, so judges can test every premium feature without a promo code. Open the app → finish the 2-minute check-in → tap "Start free trial" on the paywall.

Built With

  • admob
  • apple-search-ads
  • cloud-functions
  • familycontrols
  • firebase
  • openai
  • revenuecat
  • screentime-api
  • storekit
  • swift
  • swiftui
Share this project:

Updates

Submission history