Zero-cost, battery-efficient family location tracker. Trigger a ping from the web dashboard. The Android app wakes up, grabs GPS, sends it back. Then sleeps again.
$ trigger --status
{"trigger": true}
$ ping --device family_phone
{"lat": 41.008200, "lng": 28.978400, "battery": 85}
$ history --last 5
[2026-04-29 14:00] 41.0082, 28.9784 bat: 85%
[2026-04-29 13:45] 41.0081, 28.9783 bat: 86%
[2026-04-29 13:30] 41.0080, 28.9782 bat: 87%
[2026-04-29 13:15] 41.0079, 28.9781 bat: 88%
[2026-04-29 13:00] 41.0078, 28.9780 bat: 89%
$ _Download the latest build. Install on your device and grant location permissions.
DOWNLOAD APK (6.7 MB)Android app polls every 15 minutes. No push notifications, no constant tracking. Only sends GPS when you trigger it.
Runs entirely on free tiers. Vercel hosting, GitHub Actions CI/CD, OpenStreetMap tiles. No paid services.
Worker sleeps immediately if tracking is off. No background GPS drain. FusedLocationProvider with fallback.
Track multiple family members. Each device sends unique ID. Color-coded markers on the same map.
Last 50 pings stored per device. Polyline path on map. Timestamped log with battery levels.
Password-protected dashboard. API key authentication for devices. Cookie-based sessions.
Everything you need to get started.
Full protection for the whole family.
* Your location data is never sold to third parties. Ever.
┌──────────────────┐ ┌────────────────────┐
│ Web Dashboard │◄─────►│ Next.js API │
│ Leaflet Map │ REST │ /api/status │
│ Trigger Toggle │ │ /api/location │
└──────────────────┘ │ /api/history │
└─────────┬──────────┘
▲
│ HTTP + API Key
┌──────────┴──────────┐
│ Android Device(s) │
│ WorkManager 15min │
│ GPS + Battery │
└─────────────────────┘