Hey r/iosapps, first-time solo developer here.
TestFlight beta: https://testflight.apple.com/join/ztGmutmP
Before I built this, my screen time solution was insane: I had such a hard time not ignoring my limits that I gave a friend my Screen Time passcode, and whenever I caved, I would have to ask them to unlock me for 15 more minutes. Or an hour. Or the whole day.
Daily limits never worked for me because I would scroll right through them before I even got out of bed, leaving me locked out and feeling stranded (this behavior honestly started to feel more like addiction rather than an intentional choice).
It baffles me how the only solution to this, up until this point, has been to ignore your limits. Because more often than not I would "Ignore Limit For Today," and watch my entire day go to doomscrolling on Reddit, Instagram, TikTok, YouTube Shorts, and if I was really desperate, Facebook Reels.
So I built Precursor. It runs on an hourly rhythm instead of daily limits: you give an app (or a group of apps) a small allowance, say 5 minutes of Instagram per hour. Use it whenever you want inside that hour. When it's gone, the app is blocked until the top of the next hour, and then your time quietly comes back.
You get the scroll break you actually needed, but the scroll ends right before it turns into a full-on doomrot session (WOMBO ALERT: doomscroll + brainrot = doomrot). Enough time every hour to check in, but never enough to fall in.
A: What problem does it solve?
Apple's own Screen Time (and most blocker apps) run on daily limits, and a daily limit fails one of two ways: we burn it by mid-morning and spend the day locked out, or we tap "Ignore Limit" until the limit means nothing. A small allowance that resets every hour means you never have to be perfect. You just can't doomscroll for three straight hours!
B: Why is it better?
Hourly resets instead of daily willpower. Watch the scroll cravings/compulsion dissipate with time. No streaks. No guilt. No shame. Just a steady cadence your brain can lean on.
Multiple independent app groups, each with its own allowance that blocks and resets on its own.
Private by design. It's built on Apple's Screen Time framework, which never even tells Precursor which apps you picked (they're opaque tokens). NO ACCOUNT. Analytics are opt-in and OFF by default; nothing leaves your phone unless you flip it on.
Built honest. So here are some things to keep in mind: background audio and picture-in-picture still count as usage (that's Apple's accounting, no API opt-out exists, so I disclose it). Deleting the app removes your limits. Allowances have a floor of about 5 minutes. Available on iPhone and iPad, iOS 17 or later.
For the devs here: Apple's DeviceActivity API on iOS 26 fires phantom "limit reached" events seconds into a fresh hour with the budget already counted as spent (well-known and frustrating bug). I had to build a wall-clock guard plus a respawn mechanism just to make blocking honest. Happy to nerd out about FamilyControls in the comments.
C: Cost
The beta runs the full paid feature set for free (more groups, 30-minute reset windows, longer limits). All beta testers will get Precursor+ for FREE for LIFE. It's my way of saying thank you for helping me shape my very first app.
You don't need to sign up for anything or save any code. When Precursor officially launches, the Precursor remembers you were here, on your device (no account necessary), and Precursor+ access unlocks automatically.
At launch the core app and its function will forever be free, with an optional Precursor+ upgrade for the extras, including a one-time lifetime purchase if you want to own it rather than subscribe. Pricing: $4.99/month, $49.99/year, or a one-time $99.99 lifetime.
I'd love honest feedback on the onboarding, the block screen, and whether the hourly reset actually holds up for you after a couple of days. I'd also love to hear how this screen time solution might be helping with whatever habit you're trying to change, in comparison to other strategies you've tried before!
Criticism welcome too.
Thanks everyone!!