Inspiration

The idea for BeaconBuddy came from a real-life encounter that left a lasting impression on me.

I once met a deaf person who was lost in an unfamiliar part of town. He was trying to use WhatsApp to send his live location to someone who was coming to help him — but the person on the other end kept getting confused and ended up lost too. The shared location pin wasn’t enough. There was no way to describe the nearby landmarks, street signs, or his surroundings in a way that made sense — especially without the ability to speak or type clearly.

That moment stayed with me.

It made me realize that for many people — especially those who are deaf, mute, injured, anxious, or simply disoriented — just sending a GPS location is not enough. Context matters. A human-friendly, descriptive way of saying “here’s where I am” could make all the difference in stressful situations.

That’s what inspired me to build BeaconBuddy: A tool that doesn’t just share your coordinates, but speaks for you — literally — by generating an AI-powered description of your location, converting it into audio, and sharing everything through a simple WhatsApp message.

What it does

BeaconBuddy is a real-time location sharing app that does more than just drop a pin:

Gets your GPS coordinates in real-time using the browser’s location API.

Uses Google Genkit + Gemini to generate an AI-powered description of your surroundings.

Converts the description into audio using a text-to-speech model.

Generates a unique URL you can share via WhatsApp.

Sends your map location, the text description, and the audio file to your trusted contact — all from one interface.

This makes BeaconBuddy useful for lost individuals, travelers, or anyone who struggles with verbal communication.

How we built it

The app is built with a full-stack modern web development toolchain:

Frontend:

Next.js with App Router for routing and performance

React components and Tailwind CSS for responsive design

ShadCN UI for consistent and accessible UI components

Lucide Icons for clean iconography

AI Integration:

Google Genkit flows calling Gemini to turn GPS coordinates into natural-language descriptions

A second Genkit flow for text-to-speech to generate audio

Maps & Sharing:

Google Maps JavaScript API for visual location sharing

Custom WhatsApp integration to format messages with the location link, description, and audio file

Environment Configuration:

.env.local for API keys

Local development with npm run dev and genkit:dev for AI flows

Challenges we ran into

AI flow coordination: Managing two Genkit flows (text + speech) asynchronously while keeping the UX smooth was more complex than expected.

WhatsApp limitations: WhatsApp doesn’t allow sending audio directly through a pre-filled message. I had to generate and host a downloadable audio file instead.

Google Maps API issues: I hit a BillingNotEnabledMapError and had to configure billing properly in the Google Cloud Console.

Cross-device consistency: GPS accuracy and permissions behaved differently across devices and browsers. I had to test thoroughly to maintain consistency.

Accomplishments that we're proud of

Building an AI-powered geolocation tool from scratch as a solo developer.

Successfully chaining generative AI and TTS into a real-time web experience.

Creating a solution that’s not just technically sound but also deeply empathetic — especially for non-verbal users or those in distress.

Getting it to run smoothly on both desktop and mobile without needing a native app.

What we learned

How to build and deploy Genkit flows using Google AI Studio

Deepened my understanding of Google Maps APIs, including billing, permissions, and rendering

Strengthened my skills in React, Next.js, and TypeScript

Gained insights into user empathy and accessibility design

Learned how to manage third-party integrations and real-time location data responsibly

What's next for BeaconBuddy

Multilingual AI Descriptions: Allow users to choose their preferred language.

Offline SOS Mode: Cache GPS, description, and audio while offline, and send when connected.

Emergency Timer: Auto-send a distress message if the user hasn’t responded within a set time.

Progressive Web App (PWA): Let users install BeaconBuddy on their devices.

End-to-End Encryption: Add optional encryption for private sharing of location/audio data.

Built With

Share this project:

Updates