Inspiration

Planning has replaced presence.

We noticed that seeing friends now feels like booking a dentist appointment. It required weeks of coordination, calendar juggling, and commitment. By the time plans happen, they often feel more like obligations than something to look forward to.

At the same time, people are craving spontaneity, community, and side quests, especially in big cities where there is so much to do. Some of the best moments happen when there’s no pressure to attend, no RSVP guilt, and no expectation to explain yourself.

The idea for Vamos came from a simple behavior: posting what we were doing on a Close Friends Instagram story. It worked because it removed the feeling of obligation. But it wasn’t durable because stories disappear, people forget, and you can’t curate who’s invited per plan.

We wanted to bring that feeling into a more intentional, lasting tool, without asking people to change how they already plan their lives.

What it does

Vamos is an app for creating open invites — plans without pressure. Most social planning comes down to two questions:

  1. What should we do?
  2. Who should I invite? Vamos helps answer both.

1. What should we do? The hardest part of making plans is getting started. Instead of scrolling endlessly or defaulting to the same spots, Vamos uses AI to help users discover ideas that fit their moment. Users begin by answering a few prompts, such as:

  1. What’s the intention of this meetup?
  2. How do you want people to feel?
  3. Is this about connection, movement, celebration, or rest?
  4. Are you hoping to meet new people or keep it intimate?

A Gemini-powered agent uses this intent to surface relevant ideas by pulling nearby events from platforms like Eventbrite and Luma, highlighting local businesses and community gatherings, factoring in time, distance, and weather, and surfacing trending places in the area.

Suggestions appear on a map, grounding discovery in the real world and helping users move from indecision to action.

2. Who should I invite? Once a plan is chosen, users turn it into an open invite. They add time and location, generate a welcoming description, and select friends or custom lists. There are no RSVPs, no messaging, and no pressure. Invitees can add it to their calendar, or decide in the moment.

Planning has replaced presence. Vamos helps bring it back.

How we built it

Architecture The app runs on a Next.js 14 App Router frontend deployed to Vercel, backed by Supabase for authentication, database, and row-level security. Google Gemini 3 Flash handles two AI-driven features server-side: venue discovery and event context analysis. Leaflet powers the map layer with CartoDB Voyager tiles, and OpenStreetMap Nominatim provides geocoding. System Flow User → Next.js (Vercel) → Supabase Auth + Postgres (RLS) → Gemini 3 Flash API → Nominatim → Leaflet

Core Technical Decisions

Three-Tier Visibility Model Event visibility is enforced at the database level through Supabase Row Level Security, not application logic. Three tiers exist: public (all authenticated users), friends (accepted connections only), and circles (members of specific user-created groups). Each tier has its own SELECT policy on the events table. Cross-table policy references use SECURITY DEFINER helper functions to prevent RLS recursion chains between the events, friendships, and circle_members tables.

AI Integration Gemini is integrated through two server-side API routes. The API key stays on the server and never reaches the client. AI Event Finder — Users select a vibe, time preference, and duration. These parameters are sent to Gemini 3 Flash, which returns real venue suggestions with names, descriptions, vibe classifications, and geographic coordinates. Results populate an interactive map where users can select a venue and have the event creation form auto-filled with all details and coordinates. AI Vibe Check — Available both when creating an event and when viewing one. Sends event details to Gemini, which returns a contextual sanity check: whether the venue is real, if it’s likely open at that time, tips about parking or busy hours, and general atmosphere notes. Lightweight decision support without requiring users to research venues themselves.

Authentication Email/password auth through Supabase with server-side session management. After client-side sign-in, tokens are POSTed to a session API route that sets httpOnly cookies. Next.js middleware refreshes sessions on every request, and server components read the authenticated user directly from cookies — no client-side token exposure.

Database Schema Six tables with full Row Level Security: profiles — Auto-created via a Postgres trigger on auth.users insert friendships — Bidirectional with pending/accepted status circles — User-owned groups built from their friend list circle_members — Composite unique constraint; same user can be in multiple circles events — Title, location, coordinates, vibe, visibility tier, timestamps event_circle_visibility — Junction table mapping circle-scoped events to target circles

Maps and Geocoding Leaflet renders maps client-side using dynamic imports to avoid SSR issues. CartoDB Voyager tiles provide a warm, muted aesthetic matching the app’s design language. Custom SVG markers are color-coded by event vibe. Location geocoding uses OpenStreetMap Nominatim — when a user types a location and tabs away, the app resolves it to coordinates automatically, ensuring every event can appear on the map.

Design Philosophy The interface follows an editorial, magazine-inspired aesthetic — warm cream backgrounds instead of cold white, coral-rose and amber accents, generous whitespace, and a serif/sans-serif type pairing that feels human rather than corporate. The goal is an app people actually want to open, not one that feels like another productivity tool.

Challenges we ran into

A key challenge was balancing speed with scope in a hackathon environment, where time and resources were limited. We had to make intentional tradeoffs around features, AI usage, and integrations while still delivering a cohesive product. Working across different cities also meant we needed to stay tightly aligned despite limited time, which pushed us to communicate clearly and make decisions quickly.

Accomplishments that we're proud of

We’re proud to have completed the hackathon end to end and brought a real idea to life. Sharing the concept with friends validated that this is a genuine problem people feel and want solved. We also proved we could work effectively as a team, even while being based in different cities.

What we learned

We learned that AI Studio is not only a powerful way to quickly stand up a frontend, but also an effective communication tool between product, design, and development. Having a shared space to prototype, iterate, and test ideas helped us align faster as a team, especially while working remotely. At the same time, we learned that additional setup is needed to take what AI Studio provides and make it production-ready.

What's next for Vamos

Next, we plan to integrate with Luma and Eventbrite to automatically surface relevant events. We want the AI “vibe check” to happen by default, while being thoughtful about credit usage. We also plan to connect Google Calendar to make planning and discovery even more seamless.

Built With

Share this project:

Updates