Skip to content
Case study 04 · WheresNow

Family location sharing, installed on more than 200,000 Android phones.

Real-time location sharing for families and teams, with circles, geofenced places, SOS and 60-day history, grown to 200K+ installs.

  • Android (Java)
  • React Native
  • Google Maps SDK
  • Firebase
  • AWS
Role
Developer
Team
Independent
Timeline
2021 – 2026
Stack
Android (Java), React Native, Google Maps SDK, Firebase, AWS
200K+
installs
60 days
of history
7
languages

The problem

Families kept sending “where are you?” texts. The apps that answered that question either drained the battery, felt like surveillance, or both. WheresNow set out to be the consent-first alternative: people join a circle by invite, choose to share, and see each other on one map without the phone running hot.

I’ve built WheresNow since its first commit in 2021, and rebuilt it twice as it grew.

What I built

  1. 1. Native Android on Firebase

    The first version was a native Android app in Java, on Firebase Authentication and the Firebase Realtime Database. It used the Google Maps SDK, the Places SDK, the fused location provider and geofencing, with Google Play Billing for premium. It shipped in Sinhala and Tamil from the start, and this is the version that grew past 200,000 installs on Google Play.

  2. 2. React Native for iPhone and Android

    To reach iPhone users, I rebuilt the app in React Native, with Codemagic builds set up from the start. React Native handles the screens and the live map, while location tracking lives in native modules written for each platform.

    • App: React Native, TypeScript, Hermes and Redux Toolkit.
    • Storage: MMKV, encrypted with a key kept in the Keychain and Keystore.
    • Maps and location: Google Maps, Core Location, the fused location provider and the Activity Recognition API.
  3. 3. Location tracking that respects the battery

    • Android: a foreground service in Kotlin on the fused location provider, with Activity Recognition to detect driving and a Room database that keeps updates offline until the server has them.
    • iOS: Core Location in Swift, using significant-change and visit monitoring when the app is closed, and a notification service extension so a push can wake tracking up.
    • Fast only when someone is looking: when a family member opens someone on the map, that phone switches to live updates for a few minutes, then drops back to a battery-friendly mode.
    • Places and alerts: geofences on both platforms, with arrivals and departures queued and retried when the phone is offline.
  4. 4. Realtime backend and serverless API

    • Realtime service: Node.js, Socket.IO and MongoDB with Mongoose, in Docker on AWS EC2. It handles live location, journeys and the driving feed.
    • Serverless API: TypeScript on AWS Lambda behind API Gateway and AWS WAF, deployed with the Serverless Framework and esbuild.
    • SOS alerts that are saved in the database and retried until they’re delivered, so a server restart can’t lose one.
    • Subscriptions: react-native-iap and StoreKit 2, checked on the server with the App Store Server API and Google Play developer notifications, including a Family plan.
  5. 5. Watches, web and admin

    • Wear OS app in Kotlin with Jetpack Compose for Wear OS, with its own tracking and SOS.
    • Apple Watch app in SwiftUI, which shares location through the iPhone or on its own.
    • Admin dashboard in React, Vite, Leaflet and Recharts for support, subscriptions and usage analytics.
    • Landing site in Next.js, in seven languages.

How it ships now

GitHub Actions run each release from dev to staging to production across the mobile apps, the backend and over-the-air updates. Codemagic builds Android and Wear OS, Xcode Cloud builds iOS, and hot-updater ships JavaScript fixes over the air without a store review. Terraform manages the servers, and every pull request runs lint, type checks, tests and security scans with Checkov, hadolint and Gitleaks.

Today WheresNow covers live location, places, SOS, crash detection, scheduled check-ins, a driving feed, family chat with Google Drive and iCloud backup, and location history, in English, French, German, Spanish, Japanese, Sinhala and Tamil.