Self Control
The idea SelfControl proved.
Rebuilt for what iPhone allows.
SelfControl is a Mac classic precisely because its block survives a restart, an uninstall, even you changing your mind. No app can copy that trick on iPhone, and there's a specific, unavoidable reason why.
An honest answer first: there's no real SelfControl for iPhone, and there can't be one. SelfControl is Mac-only, released back in 2012, and licensed under the GPL. Apple's App Store doesn't allow GPL-licensed code at all, so an official port was ruled out before iOS's own restrictions even come into play.
Even without the license issue, the technical mechanism wouldn't survive the move. SelfControl works by editing your Mac's system-level hosts file directly, something iOS's sandboxing model was specifically built to prevent any third-party app from doing.
How SelfControl actually works on Mac
You set a timer and a blocklist, then it edits your hosts file. Once running, sites on the list become unreachable at the network level, from one minute up to a full 24 hours.
The timer itself can't be stopped early, by design. Restarting the Mac doesn't clear it, and neither does deleting the app. There's no button, setting, or password inside the app that ends it before time is up.
It's resistant to casual undoing, not literally unbreakable. A known, documented limitation is that a technically capable user can directly edit the hosts file by hand to restore access, which shows the timer is uncrackable through the app itself, even if the underlying mechanism has an edge case.
Why there's no real port to iOS
The license rules it out first. SelfControl is GPL-licensed open-source software, and Apple's App Store guidelines don't allow GPL code, independent of any technical question.
iOS sandboxing rules out the mechanism anyway. Every iOS app runs in a sandbox that prevents it from modifying system files or reading another app's data, which is exactly what SelfControl's hosts-file trick depends on.
Apple's own Screen Time API for developers is deliberately limited. Third-party blockers built on FamilyControls, ManagedSettings, and DeviceActivity run inside heavily restricted, read-only extensions with no persistent internet access. Apps aren't even told which specific apps you selected to block, since that information is hidden behind cryptographic tokens for privacy.
There's a specific gap that matters most in practice. Even a Screen-Time-based blocker with its own in-app passcode can typically be disabled through the "Apps with Screen Time Access" toggle in iOS Settings, a gap Apple's own built-in Screen Time doesn't have in the same way, since that can be locked behind its own separate passcode.
| Tool | Closest to SelfControl's model | Watch out for |
|---|---|---|
| Freedom | Locked Mode sessions that can't be stopped early | Requires starting a session rather than a permanent default |
| One Sec / ScreenZen | Friction before opening, not a hard block | Doesn't remove access, just adds a pause |
| Forest | Session-based commitment device | Built around timed sessions, not all-day blocking |
| Fella | Default-blocked with no in-app toggle | Still uses Apple's Screen Time frameworks like all iOS blockers |
Where Fella fits
Same philosophy, different mechanism. Fella can't replicate SelfControl's restart-proof hosts-file lock, no iOS app can, but it removes the same thing SelfControl removes: an easy in-the-moment way to undo the block.
No pause, no snooze, no toggle in the app itself. Chosen apps stay blocked by default every day, and instead of a single fixed timer, you get one 5-minute emergency unlock a day that locks itself back up automatically.
SelfControl for iPhone FAQ
Not a direct port. SelfControl is a Mac-only, GPL-licensed application, and Apple's App Store doesn't allow GPL-licensed code, which rules out an official port regardless of iOS's technical restrictions.
SelfControl blocks by editing your Mac's system-level hosts file, something iOS's sandboxing model doesn't allow any third-party app to do. iOS apps are restricted from modifying system files or other apps' data, which is exactly the mechanism SelfControl depends on.
You set a timer and a blocklist of sites or mail servers, and SelfControl edits your Mac's hosts file to block them. Once running, the block survives a restart or even deleting the app itself, and there is no built-in way to stop it early.
The timer itself can't be stopped early through the app. However, a known limitation is that a technically capable user can still directly edit the hosts file by hand to restore access, so it isn't absolutely unbreakable, just resistant to casual undoing.
Community recommendations commonly point to Freedom as the closest paid alternative, with One Sec, ClearSpace, Forest, and ScreenZen suggested as free options, alongside dedicated apps like Block Distracting Websites built specifically as SelfControl-inspired iOS tools.
Not exactly. Every iPhone app blocker runs on Apple's Screen Time frameworks rather than a system-level hosts file edit, and even Screen-Time-based blockers can be disabled through the Apps with Screen Time Access toggle in Settings, unlike SelfControl's restart-proof, delete-proof lock on Mac.
Fella shares the same core idea, removing the in-the-moment override, rather than the exact mechanism. Chosen apps stay blocked by default with no toggle inside the experience, and one 5-minute emergency unlock a day replaces SelfControl's fixed timer with a smaller, daily allowance instead.
See also the strict app blocker for iPhone guide, an app blocker that cannot be bypassed, the iPhone app blocker page, or compare Fella with Freedom and One Sec.