We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

Inspiration

I spent way too much of my day getting sucked into social media — opening Instagram or TikTok "for a minute" and looking up 40 minutes later. It started messing with my focus and honestly made me anxious; I'd feel guilty afterward but still couldn't stop myself from opening the same apps out of habit. Built-in screen time tools felt too easy to ignore — a soft warning that I'd just tap through. I wanted something with real friction: a way to actually block the apps that were hijacking my attention, not just track how badly I was doing.

That's how Lockd was born — an app-blocker built for people like me who need more than a gentle nudge to change their habits.

What it does

Lockd lets you pick the apps that pull you in the most and lock them down. Instead of a passive timer, it actively blocks access to those apps for the selected time, so you can't just "cheat" your way past it in a moment of weakness.

How I built it

Lockd is built in Flutter, so I could target both iOS and Android from one codebase. For the actual blocking mechanism, I built a native service (I called it HardModeService) that hooks into the OS-level screen time / app-restriction APIs — this is the part that actually enforces the lock rather than just displaying a warning. Monetization runs through RevenueCat, powering a "Locker Pro" entitlement that gates premium features behind a subscription.

Challenges I ran into Platform asymmetry: iOS and Android handle app-blocking completely differently at the OS level. I got the full blocking experience working natively on iOS first, but Android's equivalent APIs required a different implementation path, so that side is still in progress.

Making friction feel helpful, not punishing: The whole point of Lockd is to interrupt a bad habit, but I had to be careful the experience didn't feel hostile or nagging — it needed to feel like a tool that's on your side.

Turning a personal problem into a product: Building something to fix my own anxiety around social media meant a lot of the early design decisions came from trial and error on myself before I trusted them enough to ship to other people.

Built With

Share this project:

Updates

Submission history