BrokeTonight — Bored? Broke? Let's Go. 🌙
💡 Inspiration
It's Friday night. The group chat is asking what everyone's doing. Nobody has a plan, everyone's bored, and somehow every suggestion involves spending $40.
Meanwhile, you have $12 in your bank account.
As college students at UC San Diego, we're surrounded by beaches, cafés, campus events, hidden gems, and places we've never explored. Yet we somehow end up doing the same things—or nothing at all.
The problem isn't that there's nothing to do. It's that finding something affordable, nearby, and actually worth doing takes more effort than it should.
You have to jump between Google Maps, TikTok, Reddit, event calendars, and restaurant websites. Then come the questions: Is it open? How much does it really cost? Can everyone afford it? How do we get there?
By the time you've figured everything out, the group chat has gone silent.
We wanted to build something that makes spontaneous adventures effortless.
What if you could turn $10, three friends, and a random Tuesday into a night worth remembering?
That's how BrokeTonight was born.
🚀 What It Does
BrokeTonight is an AI-powered local activity scout that turns your budget and your vibe into real plans.
Instead of making users figure out exactly what to search for, BrokeTonight starts with four simple questions:
- 📍 Where? Pick a neighborhood, from UCSD and La Jolla to Convoy, Pacific Beach, or Downtown San Diego.
- 💸 How much? Set a per-person budget, including completely free activities.
- 🎭 What's the vibe? Chill, Adventurous, Chaotic, or Romantic.
- 👥 Who's coming? Choose your group size.
From there, BrokeTonight offers two ways to explore:
Discover Cards
Browse three personalized activity recommendations with images, estimated prices, venue information, and source links.
Instead of showing you exciting things you can't afford, BrokeTonight puts your budget first.
Gemini Live Chat + Interactive Itineraries
Sometimes you don't want individual recommendations. You want someone to plan the entire night.
Ask something like:
"Plan a chaotic night in Convoy for three friends with $30 each."
Using Google Gemini and Parallel Search MCP, BrokeTonight can research local options and turn them into a structured, multi-stop itinerary with:
- A suggested timeline and destinations
- Per-person and group cost estimates
- An interactive map built with Leaflet
- Transportation notes and venue information
- Links to supporting sources
- Shareable plans for the group chat
The goal isn't another chatbot that gives you a list of ideas.
It's an AI friend that does the planning so you can actually go out.
🛠️ How We Built It
With only a few hours to build, we focused on delivering a working, polished experience instead of spending our time reinventing existing technology.
Frontend and User Experience
We built BrokeTonight as a responsive web application using React, TypeScript, Vite, and Tailwind CSS.
We used Framer Motion for animations, Lucide React for consistent iconography, and OpenUI components for the conversational itinerary experience.
Leaflet powers the interactive route maps, allowing users to explore destinations visually rather than deciphering a wall of AI-generated text.
We deliberately designed the interface to feel like a modern consumer product rather than an administrative dashboard: bold typography, minimal colors, image-rich recommendations, intuitive filters, and mobile-friendly layouts.
Gemini + Parallel Search MCP
Gemini is the reasoning and planning engine behind BrokeTonight.
The application turns user preferences into structured requests, incorporates external research when available, and uses Gemini to generate activity recommendations and itineraries.
We integrated Parallel Search MCP to retrieve relevant web information about venues, events, pricing, and availability, giving Gemini useful context beyond its general knowledge.
We also developed structured data handling for activity cards and route stops, including cost estimates, locations, descriptions, and source attribution.
This helped us turn AI-generated responses into interactive UI elements rather than displaying raw chatbot output.
Backend and Deployment
We implemented a Node.js/Express backend for local development and a Cloudflare Workers API layer for server-side Gemini integration.
The frontend is deployed through GitHub Pages, with GitHub Actions supporting deployment.
We also added Progressive Web App support, allowing BrokeTonight to be launched from a phone's home screen without rebuilding the entire application in React Native.
Throughout development, we used Google Antigravity, GitHub, and Biome to accelerate implementation, manage revisions, and maintain code quality.
🧩 Challenges We Faced
1. Making AI recommendations useful in the real world
Getting Gemini to suggest things to do was relatively straightforward.
Getting it to suggest realistic, affordable, and relevant activities was much harder.
A restaurant might have outdated prices. An event advertised as free might require paid admission. A venue might close before the group arrives.
We had to think carefully about source attribution, cost calculations, venue details, and the distinction between confirmed information and estimates.
This taught us that generating an itinerary is only half the problem. The other half is making that itinerary something people can trust.
2. Working with API errors and unreliable external services
During development, we encountered Gemini API failures, including 403 Forbidden, 404 Not Found, and 503 Service Unavailable responses.
These issues forced us to investigate authentication, model availability, endpoint configuration, service availability, and request handling.
We also had to design around the fact that external search services might time out or be unavailable.
Rather than assuming every API request would succeed, we incorporated error handling and fallback behavior into the research pipeline.
3. Enforcing realistic budgets
An itinerary can look inexpensive until you add up every stop.
A $25 dinner, $8 dessert, and $10 activity aren't a $30 night out, regardless of what the AI summary says.
We implemented budget-aware processing and cost calculations to help keep recommendations aligned with user preferences.
This also highlighted an important limitation: estimated prices are not guaranteed prices, especially when fees, transportation, and changing menus are involved.
4. Building and deploying under serious time pressure
We initially explored reusing larger open-source itinerary platforms, but integrating an entire existing application introduced more complexity than we could justify.
We chose a focused React application instead, using established libraries for the features that mattered most.
Moving from local development to a publicly accessible application also introduced challenges around API secrets, frontend/backend separation, and making sure Gemini requests worked outside localhost.
Every feature had to earn its place.
🏆 Accomplishments We're Proud Of
Turning Gemini responses into a visual, interactive experience. Rather than stopping at text generation, BrokeTonight displays activity cards, route stops, budget estimates, and interactive maps.
Building around affordability from day one. Our design starts with what students can actually spend instead of making budgets an afterthought.
Creating two complementary discovery experiences. Users can quickly browse recommendations or have a more conversational planning experience through Gemini Live Chat.
Delivering a mobile-friendly web application. We prioritized a shareable, deployable experience over attempting a rushed native mobile rebuild.
Most importantly, we're proud that BrokeTonight feels like a product designed for people, not just a demonstration of an AI API.
📚 What We Learned
Our biggest takeaway was that building a great AI product is less about how much the model can generate and more about how much friction the product removes.
We learned how to integrate Gemini into a React application, work with external research through MCP, process structured AI responses, and build interactive interfaces around the results.
We also gained practical experience debugging APIs, handling unpredictable model outputs, managing credentials, and deploying a frontend and backend separately.
But the most valuable lesson was about product design.
Users don't want to read ten paragraphs about what they could do tonight.
They want to know:
Where are we going? When? How much? And who's coming?
Good AI should make those answers easier to find—not introduce another complicated workflow.
🔮 What's Next for BrokeTonight
BrokeTonight started around UCSD, but the idea extends to students and young adults everywhere.
We'd love to expand it with:
- 🎲 Broke Roulette: Generate a surprise adventure within your budget.
- 🗳️ Group Voting: Let friends vote on activities without endless group-chat debates.
- 🎓 Campus Discovery: Surface student-only events, free workshops, and university deals.
- 🗺️ Smarter Routes: Incorporate verified transit times, walking distances, and transportation costs.
- 🔔 Event Alerts: Notify users when interesting free events or limited-time student offers appear nearby.
- 🌎 More Cities: Expand affordable discovery beyond San Diego.
We also want to continue improving source verification and pricing accuracy so recommendations become more dependable.
Ultimately, we want BrokeTonight to turn "there's nothing to do" into "remember that night?"
Because great memories shouldn't require a big budget.
Bored? Broke? Let's go. 🌙
Log in or sign up for Devpost to join the conversation.