Blog 6 min read

Every app blocker becomes a parent

Look at the vocabulary the category built for itself. Block. Limit. Restrict. Detox. Every one of those words needs a speaker and a listener.

There is a specific moment where screen-time software fails, and it is always the same moment. Not the detection, which is a solved problem. Not the blocking, which is an afternoon of platform APIs. It is the instant the app says no.

Up until then, you and the software want the same thing. You installed it. You chose the number. You were calm and slightly ashamed and full of plans. Then the limit arrives, and the relationship inverts: the app is now an authority and you are now a subject, and the subject is holding the settings.

Look at the vocabulary the category built for itself. Block. Limit. Restrict. Detox. Lockdown. Discipline. Every one of those words needs a speaker and a listener. They are words for what is done to someone. An app that describes itself in them has already decided which side of the table it sits on, and it is not yours.

The failure is structural, not tonal

The obvious objection is that this is a copywriting problem — soften the strings, lose the red, stop with the disappointed push notifications. It isn't. Tone is downstream of a mechanical fact: the person who can disable the enforcement is the person being enforced, and disabling is free.

That gives you a device whose escape hatch is cheapest at the exact moment its holder most wants out. Willpower is lowest at 1am; the settings screen is two taps away at 1am, same as always. Every review section of every blocker ever shipped says the same thing in a hundred different voices: it worked until it didn't, and then I turned it off. That is not a bug in the enforcement. It is what enforcement means when the enforcer answers to the enforced.

The sharpest version of this shows up in the business model, which is where I had to make a decision I did not expect to be so easy. If blocking sits behind the subscription, then cancelling the subscription is the bypass — a free, thirty-second, fully-supported off switch, with a confirmation dialog and a customer service smile on it. Any commitment product that gates its commitment behind billing has built a paywall-shaped hole in itself and pointed at it.

So blocking is free, forever, in the thing I'm building. Not as a growth tactic. Because the alternative doesn't work.

What indifference is for

The alternative to a parent is not a friendlier parent. It's a timetable.

There is a last boat home. It leaves at a time you did not choose and cannot negotiate with. You can miss it — people do, constantly — and nothing moral has happened when you do. You just have to get home another way, and that costs money, and it costs more the later it gets.

A departure board has no opinion about you. It is not disappointed. It does not think you are weak, and it will not be pleased with you tomorrow if you do better. That indifference is the most respectful thing available at the moment someone is least inclined to be reasonable with themselves. Being flat turns out to be a better way to be kind than being warm at someone who is irritated.

Which is why the app never names the behaviour. It doesn't say scrolling, or doomscrolling, or wasting, or screen time. The apps have names and the budget has a number, and it states them the way a board states a departure:

The last ferry has gone

Your 45 minutes for today are spent.

The next one is at midnight.

No exclamation mark, no streak, no badge, no congratulation on the days you make it. Making the ferry is not an achievement. It is a Tuesday.

The part that looks bad

Here is the mechanic, stated as unsympathetically as I can manage, because I would rather write this sentence myself than have someone else write it about me.

When you hit the limit, you can pay to keep going. The first crossing costs about fifty cents. The next one costs more. The one after that costs more again, and the ladder resets only at midnight. Read coldly: I make more money the weaker you are.

I don't think there is a version of that sentence that stops being true. What there is instead is a set of design decisions that determine whether the thing is honest, and they are all decisions I could have made the other way for more money.

Money never buys permission right now. You can top up your balance at any moment, including from the lock screen. The credit lands thirty minutes later. Not as a dark pattern in reverse — the payment clears instantly either way, so this costs me nothing in revenue and gains me nothing to withhold. It exists because a product that converts a purchase into immediate scrolling at the moment of peak compulsion is a product working against its own stated purpose, however good that looks on a chart. You cannot buy a ticket for a boat that has already left.

The price ladder never resets on payment. Top up while you're three rungs up, and you resume three rungs up. If money could reset the ladder, the ladder would be theatre.

Ten dollars buys ten dollars, for everyone. I considered giving subscribers eleven — a nice retention lever, and standard practice. But bonus credit is a discount on scrolling wearing a hat, and look at who collects it: the person buying top-ups every week, which is the person the product is failing hardest. Rewarding them means optimising for top-up volume, which means optimising against the user. Declined.

The misalignment, named

The uncomfortable arithmetic is that revenue scales with the behaviour the product exists to eliminate. My completely successful user — the one who sees the lock screen, closes the app, and keeps their money — pays four dollars and change a month and nothing else. My least successful user pays five times that.

This is the same shape as every commitment device ever built, and it is survivable on one condition: the subscription has to carry the business, and top-up revenue has to be read as a signal of failure for that user rather than as the growth engine. If I ever find myself widening the wallet instead of the subscription's value, I will have drifted, and the metric that catches it is already specified: percentage of users who bought zero top-ups this month, tracked as a success number, next to revenue, on the same dashboard.

I am writing this before launch, which is the only point at which such a commitment costs nothing and means anything. Publishing it is the mechanism. It is considerably harder to quietly reverse a decision you have already explained in public.

What I'm actually claiming

Not that this works. It's in alpha; the interesting number — what people do at the moment the balance hits zero — doesn't exist yet, and it is the single most informative data point in the whole design. Ask me in six months.

What I'll claim now is narrower. The category has spent a decade iterating on the enforcement and almost none on the shape of the relationship, and the shape is where it keeps breaking. Everything gets softer strings and better streaks and another modal asking whether you're sure, and all of it is a parent negotiating with a teenager who controls the house.

The fix isn't a better argument at the moment of failure. It's not having an opinion at the moment of failure. A ferry doesn't scold. It leaves.

Last Ferry is a daily time budget you're allowed to miss, for a price that goes up. Android, alpha, no launch date. The design decisions above are all real and all reversible by me, which is the point of writing them down.