Haridwar21:18IST

Where

Under testing

A cross-platform personal-safety app — built solo, end-to-end, from native modules to billing.

Nov 2025 — Present

Summary

Where is the project I'm pouring everything into right now. It's a personal-safety app for iOS and Android that lets a small circle of trusted people share live location, raise SOS, and stay in touch — even when the network is bad and even when the app is killed. I'm building every layer myself: the React Native app, the custom native modules, the Node/Postgres backend, the real-time and push pipelines, in-app subscriptions, store submissions, and the ops around it.

The problem

Most personal-safety apps quietly assume a perfect network and a foreground app. Real emergencies are not that. Where is built for the messy middle — patchy signal, app killed by the OS, contacts in motion, low battery — so an SOS sent from a phone in a pocket on a bad connection still rings on a trusted person's lock screen seconds later.

What it does

  • Real-time SOS with multi-responder sessions

    One-tap distress signal with full-screen actionable alerts and quick Accept/Decline that work in foreground, background, and killed app states. Multiple responders can join a live session with voice/video and coordinate in real time.

  • Live location sharing with battery-aware sampling

    Bi-directional, real-time location streaming on an interactive Google Map. An adaptive sampler gates updates on distance, time, speed, and battery state so accuracy stays high without draining the phone.

  • Daily places & map pins

    Privacy-respecting frequent-place inference (home, work, regulars) and user-created pins with voice notes — useful context for the people who care about you, without becoming surveillance.

  • Real-time chat with rich media

    Reactions, edits, read receipts, presence, and image/video/voice/document attachments. Optimistic delivery with idempotent message IDs so retry storms don't create duplicates.

  • Voice AI safety assistant

    A location-aware voice assistant for hands-free use during emergencies — multilingual speech in, multilingual speech out, with tools for weather, routes, and contact context.

  • iOS Live Activities

    Lock-screen and Dynamic Island widgets that track active SOS state and shared location, updated via push so they stay live even when the app isn't open.

  • Push notifications across every app state

    FCM on Android, APNs on iOS, with critical-alert delivery for SOS so emergencies bypass silent mode. Separate channels and dedicated action handlers per category — nothing important gets buried.

  • Subscriptions & group billing

    Individual and group plans with seat management and per-feature quotas. RevenueCat for in-app purchases on both stores, with server-side entitlement checks and webhook reconciliation.

  • Offline-first by design

    Local SQLite (Drizzle) holds chat, contacts, and recent location history. A delta-sync orchestrator and exponential-backoff queue keep things usable with no internet and reconcile cleanly when it returns.

  • Trust & moderation

    Connection requests, blocking, and in-app reporting for user-generated content — the basics App Review (and users) actually expect.

Tech stack

React Native (Expo)Expo RouterTypeScriptRedux ToolkitTanStack QuerySQLite (Drizzle ORM)Reanimated 4 + SkiaCustom Expo native modulesNode.js / ExpressPostgreSQL (Drizzle ORM)Socket.IO + RedisFirebase Cloud MessagingAPNsNotifeeiOS Live ActivitiesRevenueCatSupabase Auth & StorageGoogle Maps PlatformPlay Integrity & DeviceCheckEAS Build / Expo Updates

Highlights

  • Built and maintained solo — design, native modules, server, payments, store submissions, ops.
  • Wrote custom Expo native modules for background location, iOS location push, the proximity sensor, and raw PCM audio for voice AI.
  • SOS notifications survive app-killed state on both Android and iOS, with iOS critical alerts so they bypass silent mode.
  • Real-time layer is horizontally scalable from day one (Socket.IO + Redis pub/sub), with a hybrid REST + WebSocket sync path and idempotent writes.
  • Subscription pipeline handles individual and group billing end-to-end with quota enforcement and webhook idempotency.
  • App attestation wired in on both platforms (Play Integrity on Android, DeviceCheck on iOS) at the API and socket layers.
  • Offline-first architecture means chat, location history, and SOS are still useful with no connection.