Free & Open Source for Android
Block distracting apps with a physical tap.
Select what to block, tap an NFC tag to start, and put the tag out of reach. The only exit is the tag. No digital bypass, no "just this once."
How it works
-
01
Pick your blocked apps
Choose any installed app. A safety list permanently excludes your dialer, messaging app, camera, launcher, and settings so you can never brick your phone.
-
02
Write an NFC tag or generate a QR code
TapBlok writes its token to any NDEF-compatible tag (NTAG213, 215, or 216) in seconds. Prefer QR? Generate one in-app and print it or hide it somewhere inconvenient.
-
03
Start a session and put the tag away
Tap Start and set the tag somewhere out of arm's reach. When you try to open a blocked app, a wall appears. The only way out is the tag.
-
04
Take a break if needed
5-minute pauses that reset when the session ends. Choose zero to five per session in Settings.
Why physical
Software willpower is weak.
Any app you can bypass with a tap in settings, you will bypass. The decision to stop focusing becomes frictionless.
An NFC tag adds one deliberate physical step. You have to reach for the object that unlocks you. That pause is the whole product.
I use these NTAG215 black adhesive sticker tags — low-profile, stick well, and a pack of 10 is a few dollars. Write your tag with the app, stick it somewhere that forces you to stand up, and you're done.
Features
Unlock
NFC Tag
Write TapBlok's token to any NDEF-compatible tag. Tap it to start and stop monitoring.
Unlock
QR Code
Generate a QR code in-app and print it. Stash it anywhere that adds real-world distance.
Blocking
Block Any App
Select any launchable app. Critical system apps are permanently off-limits.
Session
Smart Breaks
5-minute pauses for quick checks that won't derail focus. Choose zero to five per session.
Reliability
Boot Persistence
If your device restarts during an active session, TapBlok resumes automatically.
Safety
Emergency Override
Lost your tag? A slow hold stops the session — 30 seconds to 15 minutes, your choice. Or disable it entirely.
Automation
Scheduled Blocking
Sessions start and stop on their own at the times and days you pick. Set 10 pm to 7 am and sleep instead of scroll.
Discipline
Strict Mode
Stopping a session requires scanning with TapBlok open. Scanning on a block screen unlocks just that one app, briefly.
Integration
Tasker & Routines
Opt-in broadcast actions let Tasker, MacroDroid, or Samsung Routines trigger blocking — by location, calendar, anything.
Awareness
Attempt Counter
See how many times you tried to open a blocked app. Accountability you can't ignore.
Convenience
App Shortcut
Long-press the TapBlok icon to start a session without opening the app.
Trust
Open Source
Every line of code is on GitHub. No black boxes, no telemetry, no ads.
Technical
| Platform | Android 7.0 (API 24) and up |
| Unlock methods | NFC tag, QR code scan |
| Triggers | Manual, NFC, QR, schedule, Tasker/Routines broadcast |
| Permissions | Usage stats, draw over other apps, foreground service, camera (QR scanning), notifications |
| Data collection | None |
| Internet | Not required |
| Price | Free, no in-app purchases |
| Source | github.com/cajdata/TapBlok |
What it does not do
No cloud. No account. No ads.
TapBlok does not sync to the cloud, sell usage data, or require a login. It has no analytics, no A/B tests, and no ads.
It runs a foreground service that checks the active app once per second. When it sees a blocked app, it covers the screen. That is the entire feature set.
Compare
Why choose TapBlok?
The only free, open-source Android app blocker with physical enforcement. No subscription required — ever.
| Feature | TapBlok | Brick | Opal | Freedom | One Sec |
|---|---|---|---|---|---|
| Price | Free | $59 device | $99.99/yr | $39.99/yr | $19/yr |
| Android Support | Yes | Yes (12+) | Limited | Yes | Yes |
| NFC Physical Unlock | Yes | Yes | No | No | No |
| QR Code Unlock | Yes | No | No | No | No |
| No Subscription | Yes | Yes | Lifetime tier only | Lifetime tier only | Lifetime tier only |
| Open Source | Yes | No | No | No | No |
Comparison based on publicly listed product details as of July 2026. Prices vary by region and promotion — check each product's site for current pricing.
FAQ
-
Yes. No in-app purchases, no subscriptions, no hidden costs. The source code is on GitHub under the Apache 2.0 license.
-
Any NDEF-compatible NFC tag works. Personally, I use these NTAG215 black adhesive sticker tags — they're low-profile, stick well, and the black color blends in wherever you put them. A pack of 10 is a few dollars.
-
By default there's a 90-second emergency hold for situations where a tag is genuinely lost — slow enough to stop impulse bypassing. If that's still too easy, Settings lets you stretch the hold to 15 minutes or disable it completely, and Strict Mode requires scanning with TapBlok open to stop a session. Combine those with zero breaks and the only way out is the tag or printed QR code you stashed across the room.
-
Yes. Settings → Scheduled Blocking starts sessions at a set time on the days you choose, with an optional auto-stop time — overnight windows like 22:00 to 07:00 work fine. Automation apps (Tasker, MacroDroid, Samsung Routines) can also start or stop sessions via broadcast if you enable the opt-in toggle; setup examples are in the GitHub README.
-
As of v1.5.0, every install generates its own unique QR code — the old shared code was public in the source, so anyone could print a working unlock. Open "Show QR Code" and print a fresh one. NFC tags are unaffected and keep working as-is.
-
No. A built-in safety list permanently excludes your dialer, SMS app, camera, settings, system UI, and launcher. You cannot accidentally make your phone unusable.
-
Completely. TapBlok stores everything locally on your device using a local Room database. There is no account, no server, no analytics, and no ads. Verify it yourself in the source code.
-
Android 7.0 (API 24) or higher. TapBlok uses the standard Usage Stats and Foreground Service APIs available across all modern Android versions.
-
TapBlok needs two permissions. The app will prompt you for both on first launch, but here are the manual paths:
- Usage access: Settings → Apps → Special app access → Usage access → TapBlok → Allow
- Display over other apps: Settings → Apps → Special app access → Display over other apps → TapBlok → Allow
Exact menu names vary slightly between Android 7 and Android 14, but the path is the same.
-
MIUI aggressively kills background services. You need to do all of the following:
- Autostart: Settings → Apps → Manage apps → TapBlok → Autostart → On
- Battery saver: Settings → Apps → Manage apps → TapBlok → Battery saver → No restrictions
- Lock the app: In the Recents screen, long-press the TapBlok card and tap the lock icon to prevent it from being cleared.
Without Autostart especially, MIUI will kill the monitoring service when your screen turns off.
-
Yes. EMUI and HarmonyOS have their own battery management that kills services. Fix it with:
- App launch: Settings → Apps → App launch → TapBlok → Manage manually → enable Auto-launch, Secondary launch, and Run in background
- Battery optimization: Settings → Battery → App launch → TapBlok → Don't optimize
-
Samsung's Adaptive Battery can restrict background activity. To prevent this:
- Battery optimization: Settings → Device care (or Battery and device care) → Battery → Background usage limits → Never sleeping apps → Add TapBlok
- Alternatively: Settings → Apps → TapBlok → Battery → Unrestricted
-
- Battery optimization: Settings → Battery → Battery optimization → All apps → TapBlok → Don't optimize
- Auto-launch (ColorOS): Settings → Privacy/Security → App permissions → Auto-start management → TapBlok → On
-
Android 12 introduced stricter foreground service restrictions. If you see a "Restricted" battery state for TapBlok, change it:
- Settings → Apps → TapBlok → Battery → select Unrestricted (not Optimized or Restricted)
The "Optimized" default is usually fine, but "Restricted" will kill the monitoring service.