Nagomi Download Nagomi on the App Store

Blog

Why I built Nagomi

I write software for a living, and a growing part of my day is now spent waiting. I hand a task to an AI, it goes off to work, and I have two minutes with nothing to do. So I pick up my phone. Then I look up, and the task has been finished for a while, and I have been scrolling for twenty minutes.

That is the whole origin story. Nothing more dramatic than that.

My first attempt at a fix was the Screen Time settings already on the phone. Downtime looked like exactly the right tool. I set it to block the usual suspects from 9:00 to 17:00 and got back to work.

It blocked my lunch break too.

iOS gives you one Downtime window per day. One. If your day has a hole in the middle of it, and most days do, there is no way to say so. What I did instead was set a morning block, then at one o'clock open Settings and change it to an afternoon block, then change it back the next morning. That lasted about a week. Then I quietly stopped doing it, the way anyone stops doing a chore that has to be repeated twice a day forever.

So I went looking for an app.

There are plenty of them. Most of the ones I tried are built around tasks or sessions: you start a focus block, the app blocks things while it runs, you finish, it stops. That is a perfectly reasonable product and it is not what I wanted. I did not want to declare my intentions to my phone every morning. I wanted it to already know that Tuesday at ten is work.

While I was in the App Store I read the reviews, and that is where it got interesting. In app after app, people reported that the blocking had quietly stopped working. Not that it was too strict, or caught the wrong apps, but that they had set a schedule and it had simply never fired. There were enough of these to look like a pattern rather than a handful of unlucky installs.

That is the point where I decided to build the thing myself.

Building it taught me a lot about how much of the Screen Time API is locked down, and how much of that is deliberate. Apple designed these frameworks so an app can act on your choices without being able to see them. When you pick apps to block, my code does not receive a list of apps. It receives opaque tokens. I cannot read which apps you chose, I cannot see what is installed on your phone, and there is no way around it.

The picker is Apple's too. I do not draw it, I cannot restyle it, and the only things under my control are when it opens and two lines of plain text around the edges. For Nagomi this was fine, because I wanted something plain anyway. But I can see a developer with a strong visual identity finding it painful, since one whole screen of their app is not really theirs.

Then there are the limits that are not written down anywhere.

There is a cap on how many schedules an app may monitor at once. There is also a cap on how many individual apps a single block can shield. The first one behaves well: go over it and the system raises an error, so I can catch it and tell you before you save.

The second one does not. You can go past that limit and nothing complains. The settings save. The schedule registers. Every call reports success. Then the time arrives, and nothing gets blocked at all, silently, with no error anywhere to find. I am fairly confident this is one of the things behind the reviews I had been reading.

I found it by testing on a real device, over and over, because the Screen Time API does not run in the simulator at all. There is no shortcut for this. You set something up, you wait for the actual hour to come around, and you watch what happens.

Which is how I ended up deciding that the interesting design problem in Nagomi is not scheduling. Scheduling is the easy half. The hard half is that you are trusting a piece of software to do something while you are not looking, and ordinarily you have no way to check.

So Nagomi shows you where you stand against those limits while you are still setting things up, rather than after you have quietly crossed one. It tells you on the first screen whether today's periods actually registered with the system. It records every scheduled boundary as it fires and lets you read the record yourself. None of that sits behind the paid tier, and none of it ever will. A blocker that has stopped blocking without telling you is worse than no blocker at all, because you find out only after it has already cost you something.

The privacy side needed less thought, because I agree with Apple about it. Nagomi has no analytics, no crash reporting, no accounts, and no server of mine anywhere. The only thing that ever crosses the network is Apple's own check of whether you bought Pro. Everything else stays on the phone. Which apps you block, and at what hours, is a fairly intimate picture of someone's life, and I would rather not be holding it.

All of this runs against how apps tend to get built now. There are no streaks in Nagomi, no badges, no notifications congratulating you on a good week. It does not want your attention. That is the entire point. Nagomi is a Japanese word for a kind of quiet ease, and an app about getting your attention back should not be spending it.

Phones are good. Social media is fun. I am not trying to talk anyone out of either. But there is room for one app that sits in the background and holds a line you drew yourself, and I wanted it to exist, so I built it.