Inspiration
We’ve all been there: the endless group chat loop of "Where should we meet?" User A lives uptown, User B lives downtown, and User C is coming from work. Finding a spot that is geographically fair—and actually matches the group's "vibe"—is a logistical nightmare. Existing solutions have a major flaw: Privacy. To find a middle ground, everyone usually has to share their live location (like on Snap Map or Find My). But we don't always want to share our exact coordinates with a Hinge date, a Facebook Marketplace seller, or a casual acquaintance. We built Sumwhere to solve this: An AI-powered mediator that finds the perfect meeting point without anyone ever having to reveal where they are coming from.
What it does
Sumwhere is a privacy-first geospatial coordination platform. It acts as a "Zero-Knowledge Middleman" for social gatherings. Create & Share: A host creates a "Lobby" (e.g., "Coffee with Alice") and shares a link. Privacy-Preserved Input: Participants join and input their location. Crucially, this data is never shared with other users. The frontend only shows "Location Hidden," while our server calculates the mathematical centroid (midpoint). AI Vibe Check: Instead of just picking a random spot on a map, we use Gemini 3 Flash to analyze the intent. If the meetup is "Late night coding," it searches for 24-hour cafes. If it's "Date night," it looks for highly-rated quiet bars. Fairness Rationale: The system proposes 5 venues. For each, Gemini generates a "Fairness Rationale" explaining why it was picked (e.g., "This spot is equidistant for everyone and matches the 'quiet' vibe you requested"), without revealing anyone's starting point. Memory Artifacts: Once a venue is chosen, we use Gemini 3 Pro to generate a unique, artistic "Poster" for the event, turning a logistical task into a shared memory.
How we built it
We built a Google Cloud Platform (GCP) Native stack to combine deterministic accuracy with generative reasoning: Frontend: Built with Next.js 15 and React 19, styled with Tailwind CSS and Framer Motion for a fluid, app-like experience. Real-time State: We used Firebase Firestore to sync the lobby state instantly. When a user joins or votes, everyone sees it immediately. The "Brain" (Logic): Google Maps Geocoding API: Converts user inputs into coordinates for server-side calculation. Google Places API: Fetches real-world venue data near the calculated midpoint. Gemini 3 Flash: The orchestration layer. It parses natural language inputs (e.g., "somewhere cheap") into structured search queries and writes the privacy-safe rationales. The "Artist" (Creative): Gemini 3 Pro (Vision): Generates the custom event posters based on the venue, weather, and group mood.
Challenges we ran into
The "Middle of the Ocean" Problem: A mathematical midpoint isn't always a valid location. If users are on opposite sides of a bay, the center is water. We solved this by using Gemini Accomplishments that we're proud of AI that Explains "Why": We didn't just drop a pin. We built a "Fairness Rationale" engine using Gemini Flash that explains why a spot was chosen (e.g., "It's equidistant and has the quiet vibe you asked for"). True Privacy Architecture: We successfully built a zero-knowledge flow. The frontend never receives other users' coordinates; only the server knows, ensuring total privacy. Production-Grade UI: We moved beyond a "hacky" prototype, delivering a polished experience with Framer Motion animations, interactive weather widgets, and a smooth "flip-card" interface. What we learned Math + AI > AI Alone: We learned that pure AI hallucinates locations. The magic happens when you combine Google Maps (Ground Truth) with Gemini (Reasoning). Taming LLMs: We mastered using strict JSON schemas to force Gemini to act as a reliable logic engine for our API, not just a chatbot. Fairness is Complex: We realized "equal distance" isn't always "equal travel time," which gave us our next big technical challenge. What's next for Sumwhere Travel Time Fairness: Moving from geometric midpoints to Isochrones using the Google Routes API—so everyone travels 20 mins, regardless of traffic. RAG on Reviews: Indexing Google Maps reviews so users can ask specific questions like "Does this cafe have outlets?" Calendar Sync: Solving the "When" to meet, alongside the "Where."
Built With
- firebase
- gemini3
- google-maps
- next.js
- typescript
Log in or sign up for Devpost to join the conversation.