a physical-release iphone blocker built around one paired nfc anchor
ancla is a sideload-first iphone blocker that makes the release path physical. you pair one nfc anchor, choose what should be blocked, and walk back to that same object when you want the session released.
the current product is intentionally narrow. it is not trying to be a generic productivity dashboard. it is a blocker with a physical exit path, a locked surface, shortcut-based redirecting on ios, unlock presets, and a fallback typing challenge.
- what it does
- how it works
- current release path
- what you need
- sticker buying guide
- install the app
- architecture
- repo layout
- development
- troubleshooting
- license
- pairs one physical nfc anchor to the device
- stores block state on-device
- uses screen time protections plus a shortcuts automation flow on ios
- swaps the app into a locked surface while a block is active
- supports unlock presets for short temporary release windows
- supports a paragraph-accuracy failsafe challenge when the user enables it
ancla uses apple's screen time api and ios shortcuts automation to enforce app and domain blocks. the block state lives entirely on-device — there is no cloud component or account system.
the physical release mechanism works through nfc tag scanning. during setup, you pair a single ntag213 sticker to the app. when a block is active, the app presents a locked surface. tapping it arms the nfc reader. scanning the previously paired anchor releases the session. an optional paragraph-typing challenge is available as a failsafe when you cannot reach the physical anchor.
this is the honest current architecture. ancla relies on apple's screen time and shortcuts surfaces where needed instead of pretending it can silently take over the whole device.
the current ios flow is:
- choose the apps and domains you want blocked
- create the ios shortcut automation shown in the setup flow
- pair an nfc anchor
- start a block from inside
ancla - when blocked, tapping the locked surface arms nfc scanning
- scan the paired anchor, or use an allowed failsafe path, to release
- an iphone with nfc support
- ios 17 or newer
- one
ntag213sticker - a sideloading path for the ipa
buy ntag213. that is the clean default for ancla.
why this one:
- iphone compatibility matters more than extra tag memory
anclaonly needs a stable unique tag identifier- larger round stickers are easier to scan than tiny tags
- on-metal tags only matter if the sticker will live on metal
recommended buys:
| marketplace | pick | notes |
|---|---|---|
| aliexpress | ntag213 round sticker, 38 mm if available |
best default buy for ancla |
| aliexpress | ntag213 round sticker, 25 mm |
smaller fallback |
| aliexpress | ntag213 anti-metal tag |
only for metal mounting |
| amazon | fongwah ntag213 sticker pack |
straightforward non-metal default |
| amazon | gotoTags on-metal ntag213 |
use only for metal mounting |
the usual sideload path is:
- download the latest unsigned
.ipafrom the release page - sign and install it with your own sideloading method
- grant the required ios permissions
- complete the shortcut setup inside the app
- pair your anchor and start a block
ancla releases are published as unsigned artifacts only. this repo does not distribute ipa builds signed with the maintainer's certificate.
detailed sideloading instructions are in docs/sideloading.md.
┌──────────────────────────────────────────────────────┐
│ ancla-app │
│ content-view · schedule-editor · lock-screen-view │
│ app-view-model · ancla-theme · ancla-fonts │
├──────────────────────────────────────────────────────┤
│ ancla-shared │
│ ancla-core · ancla-models · ancla-store │
│ ancla-services · ancla-dependencies │
├──────────────────────────────────────────────────────┤
│ ancla-shield-extension │
│ screen-time enforcement layer │
└──────────────────────────────────────────────────────┘
- ancla-app — swiftui interface layer. handles all user-facing views, theming, and view models.
- ancla-shared — core logic, data models, storage, and dependency injection. shared between the app and extensions.
- ancla-shield-extension — ios app extension that enforces screen-time based blocking.
- ancla-core (spm target) — a subset of shared logic published as a swift package, testable independently of the full app.
data flow: user action → view model → shared store (on-device) → shield extension enforcement. no network calls, no accounts, no cloud sync.
ancla/
├── ios/ native iphone app, shared logic, shield extension, tests
├── site/ next.js marketing site
├── docs/ notes, verification docs, prompts
└── brand/ logos and brand assets
ios app code lives under ios. the important targets are:
ios/ancla-appfor the main appios/ancla-sharedfor shared models and storageios/ancla-shield-extensionfor the shield extensionios/ancla-core-testsandios/ancla-testsfor test coverage
building requires xcode on macos. the project uses xcodegen — run xcodegen generate in the ios/ directory to regenerate the .xcodeproj from project.yml.
core unit tests can also be run via the swift package manager:
cd ios
swift test # runs AnclaCoreTestsnfc scanning does not trigger: hold the phone closer to the sticker. ntag213 tags have a short read range (~1-2 cm). remove any thick case material between the phone and the tag. the nfc reader is near the top of the iphone on most models.
tag not recognized after pairing: make sure you are using the same physical sticker you paired during setup. ancla pairs exactly one tag — swapping stickers requires re-pairing.
shortcuts automation not firing: confirm the shortcut was created through the in-app setup flow. manual shortcut creation may miss required parameters. re-run the setup flow if the automation stops working after an ios update.
sideloaded app loses permissions: some sideloading methods revoke entitlements after the signing certificate expires. re-sign and reinstall the ipa with a valid certificate.
this repository is source-available, not open source.
it is licensed under PolyForm Strict 1.0.0.
required notices:
- copyright (c) 2026 Microck. all rights reserved.
- no trademark rights are granted for
Ancla,Microck, or any related names, logos, or branding.
that means people can inspect and use the code for permitted noncommercial purposes, but they do not get rights to redistribute it, publish modified copies, ship it to app stores, or turn it into their own product.
separately from the license, no trademark rights are granted to the ancla name, logo, or related branding. for commercial or distribution rights, contact contact@micr.dev.

