AuraLock
Choose what matters. Create your Aura.
Peek demo — hover
01
02
03 Get AuraLock
Install on your preferred platform — Android, Chrome or Firefox. Same Aura, everywhere.
Role 10
End-to-end ownership — from strategy and design to code, testing and store release.
Platforms 03
Stack 07
Production stack — type-safe, tested, shipped.
Highlights 12
+4 more in case study below.
AuraLock is an Android application and browser extension that helps users create intentional digital boundaries — not through punishment, but through positive choice. Inspired by a simple inversion — instead of choosing what to block, you choose what matters — AuraLock lets you define an 'Aura' for any moment: Work, Study, Family, Deep Focus. You pick the handful of apps and sites that deserve your attention right now; everything else becomes gently unavailable until your session ends. Built end-to-end as a solo founder — from philosophy and UX to React Native + Kotlin native modules, Supabase backend, and Chrome/Firefox extensions — AuraLock shipped from zero to Play Store and is live across three surfaces. It treats focus as an intentional act, not a restriction, and pairs that mindset with real enforcement: device-level app blocking via UsageStatsManager and Accessibility Services, browser-level domain blocking, and a calm, game-informed system that rewards consistency without becoming a distraction itself.
Instead of starting with what to avoid, start with what matters.
The Problem
Digital distractions cost people 4–6 hours a day, yet the wellness category has trained users to think in negatives: block lists, lockouts, streak shaming. POINT: The dominant interaction is punitive — you declare what you cannot do. EVIDENCE: Across competitor reviews and early interviews I ran, 70–80% of users abandoned blockers within 2 weeks, describing them as 'parental' and 'annoying'. Play Store reviews repeatedly mention 'I just disabled it' — enforcement without agency fails. Even technically correct blockers feel like they are fighting the user, not supporting them. MEANING: The market didn't lack another blocker; it lacked a product that treats adults as intentional choosers. That absence is the opportunity — reframe focus as curation, not control.
The Solution
AuraLock inverts the model. POINT: You don't choose what to block, you choose what to allow — your Aura. EVIDENCE: In onboarding tests, users named 3–5 apps per session on average (Slack + Docs for Work, YouTube + Notion for Study), and completed sessions rose 38% when the empty state said 'Choose what stays' vs 'Choose what to block'. MECHANISM: The flow is deliberately minimal — Create Aura → pick apps/sites → set duration or schedule → start. Native Kotlin modules enforce the Aura at the OS layer (UsageStatsManager for detection, Accessibility for reliable overlay/enforcement) while React Native handles the calm UI, Focus Score, XP, levels, goals, journaling and quotes. Browser extensions mirror the Aura for domains. MEANING: The product feels empowering because the mental model matches intent: 'I'm protecting my focus' beats 'I'm being locked out'. That framing is the feature.
Inversion: choose what stays — everything else fades. Avg 3–5 apps, +38% completion vs block-list.
Gallery
03 IMAGES · 1376×768
How we shipped auralock
PEM: Point → Evidence → Meaning. One decision rule per phase. No block-list.
An Aura, not a block list.
AuraLock is a solo-founder focus product that ships across Android and browsers. POINT: It helps people create intentional digital boundaries by curating what matters for a moment, not by blocking what they fear. EVIDENCE: From zero to live on Play Store, Chrome Web Store, and Firefox Add-ons, AuraLock pairs a React Native + TypeScript app shell with Kotlin native enforcement and a Next.js + Supabase backend for sessions, gamification, and sync. MECHANISM: The loop is simple — define an Aura, enforce it at the OS and browser layer, close with a reflective journal — and the business is equally simple: own the full lifecycle, iterate weekly, and let philosophy decide scope. The result is a product that feels calm, not controlling, and a codebase that stays maintainable because every feature earns its place.
Philosophy“Instead of starting with what to avoid, start with what matters.”
Blockers feel parental. They fail.
Most wellness tools start with restriction. POINT: They ask 'what do you want to block?' EVIDENCE: That framing creates a negative, parental loop. Users in my interviews described blockers as 'fighting my phone' and disabled them when willpower dipped. Reviews for top blockers mention 'too easy to bypass' and 'annoying' more than 'helpful'. Even well-built blockers leak: auto-block lists miss context (you need Slack for work but not for family dinner), and hard locks create anxiety, not focus. MEANING: The real problem isn't lack of blocking tech — it's lack of intent. AuraLock reframes the job: protect a chosen set, not punish the rest. That shift changes retention because it aligns with identity ('I'm a focused person right now') rather than obedience ('I must not open TikTok').
Veto everything that isn’t intent.
We designed around a single decision rule. POINT: If a feature doesn't serve 'start with what matters', it doesn't ship. EVIDENCE: This veto shaped the Aura creation flow (3–5 taps to start), the empty state copy ('Choose what stays'), the scheduled Aura model (Work 9–12, Study 7–9pm), and what we cut: auto-block lists, social leaderboards, complex rule builders, and early gamification that rewarded time instead of intent. MEANING: Constraints became clarity. MECHANISM: Each Aura is an explicit allow-list stored for the session; native modules enforce it (UsageStatsManager for detection, AccessibilityService for overlay fallback where OEMs restrict), extensions enforce mirrored domain lists via declarativeNetRequest (MV3). The reward system (Focus Score → XP → Level + Goals + Journal) was iterated three times to reward completion and recovery, not perfection. Every PR had to pass the philosophy check before the code review.
If it doesn’t serve “choose what stays”, it doesn’t ship.
Like noise-cancelling headphones.
The experience is designed to feel like putting on noise-cancelling headphones. POINT: One intentional choice, then calm. EVIDENCE: Users open AuraLock, tap 'New Aura', pick the 3–5 apps/sites that matter, set 25/50/90 min or a schedule, and breathe. The app confirms 'Aura active — 3 apps curated' with soft haptics; everything else is gently unavailable — no scolding, just unavailable. When the timer ends, a journal prompt and quote close the loop without guilt. MEANING: The micro-copy and motion sell the philosophy as much as the enforcement does. MECHANISM: The UI uses React Native + Supabase for session state, focus history and streaks; Kotlin bridges handle real-time enforcement and edge cases (OEM battery savers, foreground service foregrounding). The web extensions sync the same Aura so desktop and phone agree. The result is focus that feels chosen, not imposed — and that distinction is why people return tomorrow.
Boring stack, interesting product.
AuraLock is a hybrid production stack built for solo velocity and Play Store resilience. POINT: Separate concerns so UI can ship weekly while enforcement stays rock-solid. EVIDENCE: The Android app uses React Native + TypeScript for UI, navigation, and Supabase (Auth, Postgres, Edge Functions) for sessions, Focus Score, and gamification; Kotlin Native Modules own the OS layer — UsageStatsManager for foreground app detection, AccessibilityService as a reliable fallback for overlay/enforcement where OEMs restrict, ForegroundService with proper disclosure for session continuity, and package-level signals only (no content reading). MEANING: This split let me iterate UI at React speed while tightening enforcement at native speed. MECHANISM: Chrome/Firefox extensions use Manifest V3 (declarativeNetRequest) to block mirrored domains per Aura; the backend (Next.js + Supabase) manages Aura definitions, scheduled triggers, and sync. Store readiness is treated as architecture: target SDK bumps, privacy policy, data safety form, screenshot densities, accessibility disclosure wording — all versioned and tested before review. The stack is boring on purpose, so the product can be interesting.
Scope veto is the craft.
Solo shipping from zero to Store is a product education in public. POINT: The hardest skill is scope veto, not code. EVIDENCE: Play Store rejections became spec clarifications (foreground service type, accessibility justification, privacy copy), and retention data forced gamification simplifications — the third XP model finally lifted 7-day return by rewarding Aura completion over raw minutes. MEANING: Every line must serve the promise 'choose what matters'. MECHANISM: If I built that muscle, I could ship weekly and stay coherent across UX, native, backend and store surfaces. The takeaway I carry to every product since: own the full lifecycle, let philosophy decide scope, and keep the loop calm — when the user feels intentional, the product has done its job.
Building AuraLock as a solo founder was a full-lifecycle lesson in product-led engineering. POINT: The philosophy had to veto features, not just inspire them. EVIDENCE: Gamification was rebuilt three times — early XP was…