DEV Community

Cover image for I built a screen time blocker that has no account, no server, and no idea who you are
Sam_tj
Sam_tj

Posted on • Edited on • Originally published at dev.to

I built a screen time blocker that has no account, no server, and no idea who you are

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.

So I built SproutGuard instead — free, no account, entirely on-device. This post is about why the existing two flavors don't work, which is the part that took the research.

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, or read what it does and why first.

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

One side-effect of building this: I ended up writing a small no-signup
screen time calculator
to sanity-check my own numbers. It converts daily hours into waking years rather than
calendar years, which is the framing that actually changed how I read my own weekly report —
2h/day is 1/12 of a calendar day but 1/8 of your conscious life. It runs entirely in the
browser, no account, and it's free to use or reference.

Happy to answer questions about the Screen Time API in the comments.

Top comments (1)

Collapse
 
godnick profile image
Henry Godnick

The wall, not warden framing is exactly right. For adults, the strongest setup is usually private enforcement plus fewer negotiation points, not another dashboard that makes you feel watched.

The hard part is protecting the day-three moment when the user wants to quietly loosen the rule.