Your phone: “one more reel?”
Sanyam: “nice try, tiny rectangle goblin.”
Sanyam is a personal Android discipline app built with Expo + React Native + native Android.
It helps you:
- ⏰ take breaks after screen-time marathons
- 💧 remember water like a responsible houseplant
- 😴 block distracting apps during sleep time
- 🧱 manage blocked apps and adult domains
- 🚪 keep an emergency unlock code, because traps are for cartoons
This app uses native Android modules, so do not use Expo Go. Expo Go will cry in the corner.
npm install
npm run androidcd android
$env:NODE_ENV='development'
.\gradlew.bat :app:assembleDebug --no-parallelYour APK appears here:
android/app/build/outputs/apk/debug/app-debug.apkInstall it:
adb install -r android/app/build/outputs/apk/debug/app-debug.apkAfter installing, open Sanyam and tap the setup buttons:
- Usage Access → lets Sanyam read screen time
- Accessibility → lets Sanyam yeet blocked apps home
- VPN setup → enables family DNS blocking
- Notifications → lets Sanyam say “drink water bro”
- Expo SDK 56
- React Native 0.85
- Expo Router
- Kotlin native modules
- Android AccessibilityService
- Android UsageStatsManager
- Android VpnService
- Backstory — why this tiny discipline monster exists
- Build APK — make the Android APK
- Phone Setup — permissions without panic
- Roadmap — future goblin upgrades
- Contributing — help without breaking the parachute
- Security — safety notes for serious humans
Default unlock code:
1441Keep it. Future-you may be sleepy and confused.
Tiny PRs welcome. Giant PRs must bring snacks.
Read CONTRIBUTING.md before poking the goblin.

