Inspiration: We built Beacon because of the dangers women and gender minorities deal with every day. A lot of us have walked home at night with our keys between our fingers, or texted a friend “call me if I don’t respond in an hour.” That system works until the friend forgets or falls asleep or just isn’t paying attention. We wanted something automatic that doesn’t depend on anyone remembering, so nobody has to walk alone without a safety net.

What it does: Beacon is a check-in timer for anyone heading out at night or going somewhere unfamiliar. You start a session and pick how often you want to check in, plus a grace period. Whenever the interval ends, you tap “I’m safe” and the timer starts over. If you miss a check-in and the grace period runs out, Beacon texts your emergency contacts with your location from when the check-in was due. If you tap “I’m safe” after that, everyone gets a message letting them know you’re okay. When you get where you’re going, you tap “I’m home” and the session ends.

How we built it: We used Grok to build the full-stack app and Cursor to debug it. Textbee handled sending the text messages to emergency contacts. When we got stuck, we also asked Claude and ChatGPT for help debugging.

Challenges we ran into: Vibe coding was a lot harder than we expected. The AI would hand us code that looked right and then didn’t work, and we spent a big chunk of the weekend figuring out why. We also ran into a free-tier limit on one of the messaging platforms we used. It only allowed 50 free messages, which reset at 12 AM UTC, and we used them all up while testing. After that we had no way to send test texts. We should have read the limits before building on it. Git gave us trouble too. We had practiced our workflow beforehand and still messed up a pull, and in the end we made a new repository to get moving again.

Accomplishments that we’re proud of: We’re proud that we kept cutting features until the code actually worked. We ended up with a smaller app that does its main job, which beats a bigger one that doesn’t. We’re also proud that we made it through the night, and that we eventually stopped giggling long enough to finish.

What we learned: We learned that AI-generated code can’t be trusted without testing it, and that Grok in particular gave us a lot of trouble. Vibe coding is not easy, and you still have to understand what the code is doing. We also learned to read the limits of a free platform before building on it, not after we’ve already burned through the free messages.

What’s next for Beacon: Next, we want to let emergency contacts opt in before they receive alerts, so nobody gets a message from someone they didn’t agree to look out for. We also want a more permanent solution for texting, since the free service we used won’t hold up for real users. Beyond that, we’d like to add Apple Watch support and publish Beacon on the App Store. Bribing the Twilio CEO is still on the table.

Built With

Share this project:

Updates

Submission history