Inspiration

In building this app, we drew from our personal experiences and from stories of those in our lives-losing track of someone you're with goes quickly from annoying to scary, whether that is a friend walking home alone, a group splitting up at an event, or someone who's gone quiet on communication channels. The usual tools don't help in the moment with Find My being passive and "where are you??" being easy to miss. We wanted asking for help or saying "I'm okay" to take one tap, and any emergency to be impossible to miss.

What it does

Ursa is a temporary safety session you start with friends, group or solo.

  • Group: live location on a map, shared check-ins, and a roster that floats whoever needs attention to the top
  • Solo: share a code so friends can follow you home with a read-only view of your location and last check-in
  • Check-ins: your choice of every X minutes or by a set time, with a live countdown
  • Pings: privately nudge one person; they reply by text or voice
  • Voice: record a memo (to the group or as a ping) and Deepgram transcribes it
  • SOS: one button buzzes everyone through Do Not Disturb with your location; anyone offline when it fires still gets a full-screen catch-up when they reopen the app
  • Privacy: sharing lasts only for the session and deletes when everyone's safe or after 24 hours

How we built it

React Native + Expo (SDK 54) on the front end, with a react-native-web build so it runs in a browser too. The backend is Node + Express with WebSockets for live updates, and Redis (Redis Cloud) for geo queries, pub/sub, and the 24-hour auto-expiry. We also used Cognition's Devin as our coding assistant. Voice runs phone → backend → Deepgram → transcript, keeping the API key server-side. Maps use Leaflet + CARTO.

Challenges we ran into

  • keeping the map, roster, and countdowns in sync across devices over WebSockets
  • an SOS that breaks through silent mode, stops after 5 minutes to save battery, and still reaches people who were offline
  • reliable mobile audio playback for transcribed voice clips
  • one codebase on phone and web: react-native-webview doesn't exist in browsers, so we built a web map path to match

Accomplishments that we're proud of

A real-time, multi-user safety app, group and solo, running on phones and in the browser from one codebase, with transcribed hands-free voice and a privacy stance that keeps you and your data safe.

What we learned

For a safety tool like ours, we realized user experience is the crucial feature: one tap versus three or the ability to voice record can decide whether someone chooses to or is able to reach out. Real-time sync over WebSockets and Redis was harder than expected, and keeping location, voice, and keys server-side made privacy a default instead of a patch.

What's next for Ursa

  • standalone iOS/Android builds (no Expo Go)
  • per-recipient delivery for private pings
  • opt-in signals: low-battery and "gone quiet" alerts, ambient transcription during an SOS
  • trusted-contact escalation when check-ins are missed
Share this project:

Updates