Monke Reset blocks adult content on your iPhone and helps you rebuild after quitting porn, with a cartoon gorilla doing the talking instead of a lecture. Live on the App Store since August 21, 2026, in 175 countries and 18 languages.
Inspiration
We tried the quit-porn apps. Every one opened by explaining our own problem back to us: dopamine charts, relapse statistics, a lecture we had already heard a hundred times.
The people this is for already know what to do. One comment under a self-improvement video, with 9,500 likes, says it better than we can:
"When you've heard this same message before 100s of times and your brain is too smart to be outsmarted, but not smart enough to progress."
They don't need more information. They need friction at 1am, when willpower is gone, and a reason to open the app again the next day. That's the whole product.
What it does
- Blocks adult sites system-wide. Monke blocks adult sites in every browser, across the whole phone, plus any app you pick. During onboarding you watch a real adult site get blocked before you're ever asked to pay.
- A 90-day plan. A short animated story and a few private questions build your plan, and you seal it with a pledge signed with your finger.
- Help in the moment. One tap from home: guided breathing, a short meditation, your pledge, and your own reasons for quitting, written in your own words for exactly this moment.
- Progress you can see. Streak, calendar and milestone achievements. A relapse doesn't reset you to a failure screen; the plan starts a new lap.
- A library. Short reads and podcasts on recovery. As Monke puts it: "Monke did the reading. Here's the short version."
- Monke. A hand-drawn gorilla who's rooting for you. His face and pose carry the feeling of every screen, so the app stays warm without ever talking down to you.
Private by design. No account, no ads, no tracking. Answers about porn use are "data concerning sex life" under GDPR, so they never leave the device, and a test fails if one ever reaches analytics.
How we built it
From the first commit on June 18 to the App Store on August 21, in nine weeks.
- App: Expo SDK 57, React Native 0.86 on the New Architecture, React 19.2 with the React Compiler, TypeScript strict, Expo Router
- Blocking: native Screen Time extensions (FamilyControls, ManagedSettings, DeviceActivity) for the web filter, the shield screen and the shield actions
- State: local-first with MMKV and zustand. There is no backend, because the data this app touches should never need one
- Money: RevenueCat for subscriptions, entitlements and remotely configured paywalls, with purchasing-power pricing in 175 countries
- Motion and art: Reanimated springs, a cut-out Monke rig, and an animated story opening with camera moves
- Quality: Jest and React Native Testing Library, Sentry for crashes, anonymous PostHog analytics that users can switch off in Settings
- 18 languages, each translated, reviewed and checked against how people actually search in that country
Challenges we ran into
- Three App Store rejections before launch. One only reproduced when App Review ran the iPhone app on an iPad, a path we had never tested.
- Screen Time in production. The Family Controls entitlement, three extension targets and their bundle IDs all have to line up, and part of it can only be set by hand in Apple's web portal.
- Measuring without collecting. We wanted a real funnel without ever sending a single sensitive answer. The fix was a short, closed list of allowed analytics events, with a test guarding the sensitive answers.
- Distribution. The communities where our users gather ban promotion, and general builder communities punish the category. We had to find a channel that fits a private problem.
Accomplishments that we're proud of
- Shipped a native Screen Time blocker as a two-person team
- About 400 installs since launch, with 94% of people who start onboarding finishing it
- Top-10 App Store search ranking for our core recovery keywords in most countries outside the US
- A recovery app that reads as warm and a little funny, not clinical
What we learned
Our users search; they don't browse. Reddit brought views but the wrong audience, and Instagram hasn't cracked yet. App Store search drives nearly all of our impressions, so that's where we invested.
Measure before you redesign. We expected onboarding to be the leak. It wasn't: 94% finish it. The leak was the paywall and the first three days of the trial. So version 1.1.0 moves the most convincing moment, watching a real adult site get blocked, to right before the paywall.
What's next
A day-2 check-in during the trial, localized screenshots for the markets where we already rank, and new Monke poses for the milestones people care about most.
Built With
- expo-router
- expo.io
- familycontrols
- jest
- mmkv
- posthog
- react
- react-native
- reanimated
- revenuecat
- screen-time-api
- sentry
- swift
- typescript
- zustand


Log in or sign up for Devpost to join the conversation.