Inspiration

5 years ago (2021), frustrated with myself and how easily I got swindled into a doomscroll, I searched in google "Screen time apps that let you set limits on an hourly basis?". To my surprise, other people had been looking for the same thing, like a lot of people.

The top result was a reddit post from r/apple: "Opinion: screen time app limits would be way more useful if you could limit usage by hour." with some 1.8k upvotes (and this was back when reddit was just barely becoming mainstream).

I scoured every comment looking for an answer to the call... not a single person had one. I gave up and just had to make do with what was out there. Which looked like me giving my screen time passcode to my partner, offloading my accountability to another person wasn't the solution I was looking for nor was it going to help me change meaningfully, that had to come from within.

2 years later, after finishing my time in the U.S. Marine Corps as an helicopter mechanic, I tried to code the first version of Precursor (before it even was Precursor) teaching myself Flutter along the way. That was back in 2023, and well since it is 2026 now, it's safe to say that it did not go well.

So I pivoted and focused on my degree in psychology, fascinated with neuroscience and behavior, I came to understand just how much social media, entertainment, and game companies invest in their UI and UX design departments. Everything we engage with as consumable media has been dialed in to not only get our attention but also to farm it. For example, take the age old slot machines that addicted the generations of the past to gambling and casinos. Social media uses the same variable and interval reward schedule to build your curated "for you" pages and push your content to the masses, with no purpose but to keep stringing you along for that next hit of dopamine.

Now fast forward to June 2026, I became the first person in my entire family to not only graduate college, but do so also with an honors GPA, and an honors thesis to my name. I now have better understanding of dopamine and it's not exactly the neurotransmitter people think it is. It doesn't make us happy persay, rather it's more likely to be the thing that builds up that feeling of anticipation of an action, the thing that motivates us to act.

With all this education behind me I look at these apps much differently today, not only do I recognize that they steal my attention and time, but they also rob me of my motivation to act on my goals. Because this whole attention economy runs on habit formation, and habit formation is dopaminergic process, which reinforces stimulus and response patterns across the brain. In other words, your brain learns that it can get cheap and fast stimulation with these apps on your phone. The problem is that it seems we have an evolutionary imperative to get the most value we can out of something with the least amount of work. Meaning, the brain does not care where it gets it's stimulation from as long as it gets it.

However, the mind does, and that is the precise reason we all feel so much dissonance when we scroll. It's almost like it's not our choice anymore... but it is.

That brings us to today, where much like in 2023, I find myself in a critical transition period. With this free time post-grad I have set out to finish what I started and built Precursor: Hourly Screen Time. The first screen time cotrol app on iOS to bring hourly/recurring screen time limits to iPhone and iPad devices.

What it does

Instead of one big daily limit that we end up scrolling through before we get out of bed, Precursor resets your app limits every hour.

This hourly mechanic makes it so much easier to reach your limit and acknowledge that it's time do something else.

All while the brain remains calm and willing to get back to working on your goals because it knows it can get a break again in just a short hour if it needs it.

The idea honestly really simple and I genuinely cannot believe nobody else has implemented it yet, but more on that below.

How I built it

Coming from a mostly statistical programming and a research psychology background, I was a bit intimidated to expand beyond Python and R. However, after a few months of working on small personal projects and learning how to leverage Claude Code for assistive coding, I felt ready to tackle Precursor.

For the initial build-out I decided to go native, so for iOS that means Swift and for the Android port that means Kotlin. No cross-platform framework, which means two real codebases, but it also means each one gets the platform's actual screen time APIs instead of a lowest common denominator.

Everything on iOS rests on Apple's screen time frameworks:

  • FamilyControls handles authorization and the app picker. iOS hands me opaque tokens instead of app names, so I literally cannot see which apps you choose to limit. I love this: the privacy story is enforced by iOS itself, not by my promises.
  • DeviceActivity handles the schedules and the usage thresholds. This is where the hourly reset actually lives, and where every war story in the next section comes from.
  • ManagedSettings applies and lifts the block screen.

The whole iOS enforcement loop runs on-device inside a small extension process that iOS wakes at the top of the hour or when a limit is reached. No account, no server in the enforcement path, and analytics are opt-in and off by default.

Android has no equivalent to DeviceActivity, nothing that meters an app's usage for you and calls you back. So the port does its own metering: it reads usage stats, does its own math, and recomputes whether an app should be blocked on every tick rather than trusting stored state.

Challenges I ran into

After building Precursor I think i gained a bit of insight into why nobody else has built this feature into their existing screen time solutions on iOS (not even apple)!

At least in part I think the issue is that Apple's screen time api is really quite buggy to begin with, which makes reliably measuring multiple windows that reset multiple times a day a real headache to manage.

What I found is that the main culprit is a bug that will sometimes say you've already used X minutes of an app, even at the start of a new day when you haven't had a chance to open it (this is why you sometimes get blocked early or randomly with other screen time solutions).

also,

The api has a cap to how many windows/apps it can track the usage of at once (about 20). Multiple "rolling" windows of multiple apps, reaches that cap almost immediately. So you'd only get to block a few apps at once, which is not very useful.

So to be happy with a product that I could ship I spent so many full days testing out workarounds manually on device as iOS simulator doesn't have a working screen time api.

But that manual labor is what I think made Precursor, just work. I heard early on that the best features are invisible and I truly feel like I nailed that with Precursor's hourly mechanic.

Accomplishments that I am proud of

Well this just happened this morning so it's fresh in my mind but I woke up to about 1,000 downloads just overnight. This literally still doesn't feel real but I am so grateful.

While numbers aren't everything, I initally felt really validated in my idea and novel approach to screen time limits when the beta alone grew to nearly 600 testers in the 2 or 3 weeks before launch. However since launch things have really just kept growing at a rate I don't think I could have ever expected. Precursor just started its 3rd week officially on the app store and it has already amassed over 3,000 downloads. I know this sort of growth out the gate is a bit unusual so I am just really grateful to have my app be so well received and hope to keep doing right by the people who support it!

Aside from that I am also just really proud of myself that I never gave up on this idea, 5 years, it sat in the back of my brain. If nothing else comes of Precursor, I am just so incredibly proud that I solved a longstanding problem I had and solved it in a way that didn't exist before.

What I learned

That shipping is so much more than building. I think my biggest lesson in all of this is that education matters, you could have a product that solves everyones problem but if you don't know how to show that to your audience then your product is useless.

I am still working on this myself some of my approaches work and some don't, I take it all in and am constantly reassessing how I can approach things differently next time.

This also goes for in app education, one thing I worked on for days was the onboarding flow and while it was good I learned that most people don't read a thing you put on those screens. So instead of blaming users I revamped the onboarding to be so much more of a visually informative process rather than making users read copy.

What's next for Precursor: Hourly Screen Time

So much more, for starters the app is growing internationally (that's where the bulk of the overnight 1k downloads came from). So my goal is to ship an update that localizes Precursor in about 14 other languages besides English!

After that the Android port (which is in closed alpha), then mac port, web extensions, and eventually a PC port to help me manage my gaming habits lol!

Built With

Share this project:

Updates

posted an update —

GROWTH UPDATE:

I am seeing a huge influx of international users right now and I discovered that my app got an article written about it over at newbmobilelife.com, completely unprompted (nearly 1.5k users in just the last two days). I am so grateful that people are spreading the word on my app and finding it useful, can't believe this started with an idea 5 years ago and I waited so long to bring it to life.

Here is the article for anyone interested: https://www.newmobilelife.com/2026/08/17/precursor-hourly-screen-time-%e9%99%90%e6%99%82%e5%85%8d%e8%b2%bb/

Log in or sign up for Devpost to join the conversation.

Submission history