Sam_tj

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, plus FamilyActivityPicker for 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

SproutGuardfree 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.