FocusFlow enforces focus at the OS level — Accessibility Service + local VPN + Device Admin. No soft timers, no single-tap override. Just unbreakable blocking.
Architecture
Most blockers use one layer — FocusFlow stacks three. Each layer closes a bypass the previous one leaves open.
Monitors every app window. Fires within milliseconds of detecting a blocked app — up to 5 re-checks at 300 ms intervals. Also intercepts Play Store installs, uninstall dialogs, and navigation to Accessibility Settings during active sessions.
Routes blocked app traffic into a local VPN tunnel that never forwards packets. PER_APP mode: only the blocked app loses internet. GLOBAL mode: all internet cut except emergency calls. No traffic ever leaves your device.
Blocks uninstallation via Android Settings. System Guard intercepts navigation to Clear Data and Accessibility screens during sessions. SHA-256 hashed session PIN stored natively — even a compromised JS bridge can't end a session without the correct PIN.
What's inside
These aren't incremental improvements. They're capabilities you won't find in Freedom, Opal, AppBlock, or Digital Wellbeing.
Records every blocked-app attempt with timestamp (up to 500 entries). Every Sunday at 08:00, a push notification delivers your 7-day behavioral summary by app. Patterns, not just timers.
Block Instagram Mon–Fri 09:00–18:00 without any active session. Per-app, per-day-of-week calendar blocking. Independent of the four timed modes — enforced directly by the Accessibility Service.
YouTube Shorts Blocker closes the Shorts player while leaving YouTube fully accessible. Instagram Reels Blocker works the same way. Block the addiction loop, not the whole app.
Screen dimmed to 2% hardware brightness + 70% black overlay + vibration pulse loop + notification sound — all firing simultaneously on blocked-app detection. Conditions the reflex, not just the behaviour.
Set FocusFlow as your home screen. HOME button shows only whitelisted apps in a minimal grid. The app drawer also respects the blocklist. Your home screen becomes the enforcer.
BootReceiver auto-restarts the Accessibility Service and VPN after any device reboot. Clock tamper detection validates session timestamps at boot — the "change system clock" bypass doesn't work.
PackageInstallReceiver monitors ACTION_PACKAGE_ADDED. Any app installed during a session is auto-blocked and triggers aversive feedback. The "install a different browser to bypass" loophole is closed.
Three sub-modes per app: count (opens per day), time-budget (minutes per day), and interval (cooldown between uses). Granular control that goes beyond blunt session blocking.
Getting started
Grant two permissions and you're protected. FocusFlow handles everything else in the background.
Enable Accessibility Service and Usage Stats access — both are needed to detect and block apps at the OS level.
Task-Based, Standalone, Always-On, or Scheduled Greyout. Add the apps you want blocked (or a whitelist of what's allowed).
FocusFlow activates all three enforcement layers. A persistent notification shows session status and controls.
Check the Temptation Log. Read the Sunday report. See which apps pull your attention most and adjust your blocklist.
Side by side
A direct comparison of hard enforcement features across the major screen time apps.
| Feature | FocusFlow | Freedom | Opal | Digital Wellbeing |
|---|---|---|---|---|
| Accessibility Service blocking | ✓ | ✓ | ✗ | ✗ |
| Local VPN enforcement | ✓ | ✓ | ✓ | ✗ |
| Device Administrator (uninstall lock) | ✓ | ✗ | ✗ | ✗ |
| Temptation Log + Weekly Report | ✓ | ✗ | ✗ | ✗ |
| Content-level blocking (Shorts / Reels) | ✓ | ✗ | ✗ | ✗ |
| Aversive feedback (dimming + vibration) | ✓ | ✗ | ✗ | ✗ |
| Boot recovery & clock tamper detection | ✓ | ✗ | ✗ | ✗ |
| Price | Free | $39.99/yr | $39.99/yr | Free |
Questions
Everything you need to know before installing.
Tech stack
React Native + Expo on the JS layer. Six custom Kotlin native modules on the Android side.
Download the APK or build it yourself from source. Completely free, forever.