Inspiration
Every day, people around the world face uncomfortable and threatening situations in public spaces. Catcalling, unwanted comments, harassment, and uncomfortable proximity from strangers are pervasive experiences that create high-stress situations that can feel impossible to escape (Ferraro, 1995; Fileborn, Sexuality & Culture, 2022). According to a national study by Tulane University, 82% of women and 42% of men in the United States have experienced some form of harassment or assault in their lifetime, with public spaces ranking as the most common location (Plaisance, 2024). That's not a niche problem. That's most people. Whether it's an unwanted comment on the street, a stranger who won't take a hint, or a situation that feels off, the instinct to escape is universal. But acting on it isn't always easy. Social pressure, fear of escalation, and the absence of a clean exit keep people stuck. To mitigate this, we built Lifeline.
What it does
Lifeline is a context-aware voice-trigger system that operates continuously in the background, passively listening for critical keywords and phrases in real time to identify moments when a user may be in distress, discomfort, or danger without requiring any manual interaction. By leveraging audio processing and keyword detection, it can recognize signals associated with unsafe or life-threatening situations and automatically initiate predefined actions such as alerting trusted contacts, notifying emergency services, triggering automated calls, or logging contextual information for review and/or the authorities. Designed to be proactive rather than reactive, Lifeline eliminates the need for users to navigate interfaces or explicitly request help, making it especially valuable in high-stress scenarios where speed and accessibility are crucial. Its architecture combines a lightweight background application for continuous listening with a backend system that handles event processing and escalation logic to secure personal safety no matter where you are.
How we built it
We built Lifeline as a Next.js 16 web app with three main layers working together.
On the frontend, the browser's Web Speech API (SpeechRecognition) runs continuously in the background, streaming interim transcripts in real time. A normalization layer strips apostrophes and expands contractions so spoken phrases like "gonna" reliably match typed trigger phrases. When a match is detected, a cooldown prevents duplicate fires. Users configure trigger rules through a dashboard. Each rule maps a spoken phrase to a phone number and a custom AI-delivered message, with an optional flag to append their live GPS location (reverse-geocoded via Nominatim). Rules are persisted in Supabase, and the listen page loads them server-side before handing off to the client. When a trigger fires, the frontend calls our /api/call route handler, which hits the Bland AI API to dispatch a real phone call. The AI agent reads the user's custom message verbatim, with urgency. Every dispatched call is logged in Supabase for the user's records, including the specific call’s trigger phrase, number, message, and success status. Auth is handled end-to-end with Supabase SSR, with a middleware-protected /app route. We also implemented an AI chatbot that can help create smart triggers or help clarify anything related to the product.
Challenges we ran into
The Web Speech API is browser-specific and inconsistent; it only works reliably in Chromium-based browsers, restarts itself on silence, and produces messy interim transcripts. We had to carefully manage the one-end restart loop to keep listening truly continuous without creating duplicate recognition instances. Fuzzy phrase matching was trickier than expected. Spoken language doesn't match typed text cleanly, contractions get dropped, words get slurred, and the API sometimes returns partial results mid-sentence. We built a normalization pass to handle the most common mismatches, but it's an ongoing calibration problem. Getting the location to work reliably under time pressure was also a challenge. Geolocation can be slow or denied, so we set a tight timeout and fall back gracefully rather than blocking the call dispatch.
Accomplishments that we're proud of
The end-to-end latency is genuinely fast from the moment a trigger phrase is spoken to a real phone ringing, which is only a couple of seconds. That speed matters a lot for a safety tool. We're also proud of how low-friction the setup is. A user can go from zero to a working safety trigger in under a minute: sign in, add a rule with a phrase, number, and message, open the Listen page, and it's live. No app install, no hardware, no configuration files. The location feature, adding a real street address to the AI's message, felt like a meaningful detail that could make a real difference in an emergency.
What we learned
The Web Speech API is powerful but fragile, and building reliable UX on top of browser APIs that weren't designed for continuous background use requires a lot of defensive coding. We also learned that the hardest part of a safety tool is handling every failure mode gracefully, so the system never silently does nothing. We also got a much better feel for how quickly you can wire together a full-stack product when the primitives (Supabase, Bland AI, Next.js route handlers) are well-designed. The core dispatch pipeline went from idea to working in a few hours.
What's next for Lifeline.
Native mobile app so the listener runs as a true background process, not a browser tab SMS and push notification fallbacks if the call doesn't connect. Multi-contact escalation chains, call person A, and if no answer, automatically try person B Smarter phrase matching using an on-device embedding model instead of substring search, reducing false positives. Shared emergency profiles so trusted contacts can see your trigger history and location in real time Integration with wearables for passive biometric triggers (elevated heart rate, fall detection) alongside voice.
Sources: The Victimization of Men in America: New Data Challenge Old Assumptions | AJPH | Vol. 104 Issue 6 https://www.omicsonline.org/open-access/sexual-street-harassment-its-impact-and-reactions-in-men-and-women-124876.html Stranger Harassment and PTSD Symptoms: Roles of Self-Blame, Shame, Fear, Feminine Norms, and Feminism | Sex Roles | Springer Nature Link Understanding Street Harassment as Gendered Violence: Past, Present, and Future | Sexuality & Culture | Springer Nature Link https://news.tulane.edu/pr/rates-sexual-harassment-and-assault-nationwide-still-high-after-metoo-movement
Built With
- bland-api
- kiro
- next.js
- openstreetmap
- supabase
- vercel


Log in or sign up for Devpost to join the conversation.