I was doomscrolling about three hours a day. Not "checking my phone a lot" — three hours, measured, on a screen time report I didn't want to look at.
So I did what developers do: I went looking for a tool. What I found was a category with two flavors, and neither one was built for me.
Flavor 1: parental control wearing a productivity costume
Most "app blocker" apps assume a supervisor and a supervised. A parent installs it. Someone else holds the password. Someone else gets the report.
The reviews tell the story better than I can. This is a real 1-star review of one of the biggest apps in the category (58k+ ratings, 4.3★):
"My parents installed this for me. I don't have a porn addiction. I cannot use the internet without fear of being monitored and needing to be 'accountable'."
That model works fine for kids. But I'm an adult who already knows the problem. I don't need a warden. I need a wall — and I want to be the one who builds it.
Flavor 2: your habits, now on someone else's server
The other half of the category wants an account, a subscription, and a copy of your usage data. You wanted to spend less time on your phone. Now a company you've never met has a timeline of every app you opened and when.
For a category that markets itself on "digital wellbeing," that's a strange trade.
What I actually wanted
A short list:
- Blocks the apps that eat my day
- Nobody gets a report on me — not a parent, not a partner, not a vendor
- No login
- Something that makes the habit stick past day three
That last one matters more than it sounds. Blocking alone doesn't work — you disable it in a weak moment and never turn it back on. What works is a number you don't want to reset.
The technical part: you don't need a backend
Here's the thing that surprised me. On iOS, you can build this entire category with no server at all.
Apple's Screen Time API (the FamilyControls / ManagedSettings / DeviceActivity trio) does the blocking at the system level, on-device. The relevant pieces:
-
FamilyControls— authorization, plusFamilyActivityPickerfor choosing apps -
ManagedSettings— applies the actual shields -
DeviceActivity— schedules and monitors activity windows
Critically, the app tokens you get back from the picker are opaque. You don't receive bundle IDs. You literally cannot build a profile of what the user selected even if you wanted to — Apple hands you a token that only means something to the system.
That constraint is usually framed as a limitation. I think it's the best part of the API. It makes "we don't track you" structurally true rather than a promise in a privacy policy. There's no server, so there's nothing to leak, subpoena, or sell.
Streak state, session history, settings — all of it lives on-device. The entire app has zero network calls.
What I shipped
SproutGuard — free on the App Store.
- Block specific apps and sites
- Focus sessions
- Daily streaks (the part that actually makes it stick)
- Usage trends
No account. No cloud. No surveillance. It's for blocking yourself.
Things I got wrong
"But you can just turn it off." Yes. It's your phone. I went back and forth on adding hard-lock mechanisms and decided against every one of them — the moment an app fights its own user, it becomes the thing I was trying to avoid. Most doomscrolling isn't a decision anyway; it's a reflex. A wall interrupts the reflex long enough for a decision to happen. That's most of the value.
Being right isn't the same as being interesting. "On-device, no account, privacy-first" is a correct positioning and a boring one. Nobody tells a friend about your app because it has no backend. The apps growing fastest in this category have a hook — one makes you do push-ups to unlock Instagram. I built the principled version and skipped the shareable one. Still working on that.
If you're building in this space
The Screen Time API is genuinely pleasant and under-used. If you've been assuming an app like this needs a backend — it doesn't. You can ship a full screen-time product with zero infrastructure cost, zero data liability, and a privacy story that's true by construction.
Happy to answer questions about the API in the comments.
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.