● refactoringbuildingsamridhlimbu.com/projects/acknowledgement-force · v0.1
Acknowledgement Force
● open source · v0.3.0A macOS app that blocks your screen until you read your personal rules, tick the box, and name your single highest-leverage action for the day. Most goal failures are identity failures — not laziness. The rule you set last week vanishes in moments of stress. This makes forgetting structurally impossible.
Context
Built solo, 2026. The premise: you know what you should do. You built the habit, set the rule, wrote the intention. Then a stressful week hits and the rule is nowhere near the surface. Acknowledgement Force is not a productivity app — it is an identity reinforcement tool. It physically blocks your computer at the start of each day until you re-commit to who you decided to be. The mechanism is simple: repetition moves rules from working memory to identity. You cannot skip the ritual.
Timeline
Apr 2026
v0.1.0 — first version
Built with Tauri (Rust + web tech). Cross-platform, ran on Windows. The core mechanic was already there: a blocking window that would not close until you read your rules, ticked the box, and named one action.
May 2026
Decision: full native rewrite
Switched to macOS full-time. Tauri felt wrong on Mac — not enough to be unusable, enough to be noticeable every morning. Started the Swift 6 rewrite.
May 2026
v0.2.0 — native Swift
Full rewrite in Swift 6 + SwiftUI. LaunchAgent for configurable cadence (every login, hourly, daily, weekly). Single-instance lock. install.sh that builds a release binary, packages it into an .app, and installs to ~/Applications. No Xcode needed by the user.
May 2026
v0.3.0 — cloud sync · current
Next.js web editor live at force.clupai.com. Edit contract, quotes, daily goals, and reflection from any device — changes sync to your Mac on next launch. Supabase-backed with RLS and light/dark mode. Opt-in: still runs fully local with no account. Hosted option or bring-your-own Supabase.
Key decisions
01swift 6 + swiftui › tauri
Native feel matters when the app is the first thing you see every morning. Tauri is great cross-platform but adds friction on Mac. SwiftUI renders exactly like the OS expects. The binary is also ~3 MB vs ~30 MB.
02launchagent › login item
Login items only fire on login. A LaunchAgent can re-lock on any cadence — every hour, every 12 hours, once a day. One plist, full control, no proprietary daemon.
03opt-in sync · supabase › always-on cloud
Your personal rules are not data that should be stored on a server by default. Sync is opt-in: run fully local with no account, or sign in to force.clupai.com to sync contract, quotes, goals, and reflection. Acknowledgements and history always stay on-device. Last-edit-wins — no conflict resolution needed.
04ad-hoc signed › notarized
Notarization requires an Apple Developer account. Ad-hoc signing works for local builds and keeps the install path simple: clone, run install.sh, done. Building from source on the target machine avoids Gatekeeper warnings.
Stack
LanguageSwift 6
UISwiftUI
Packagingnative .app bundle · ad-hoc signed · install.sh
Auto-launchuser LaunchAgent (~/Library/LaunchAgents/)
Storage~/Library/Application Support/Force/acknowledgements.log
PlatformmacOS 14 Sonoma+ · Apple Silicon + Intel
Web editorNext.js · force.clupai.com
SyncSupabase · RLS · opt-in · self-hostable