Inspiration
Travel planning should feel as exciting as the trip itself.
In reality, it is not. Deciding where is one of many hard parts when planning a vacation. People spend hours bouncing between blogs, social media posts, and Google Maps, trying to piece together a trip that matches the vibe they're looking for. Instead of only dates, and budgets, we speak your language - feelings.
We built something different: a system where you describe any feeling, and hands you a trip.
What it does
Ocio is a web app that turns a single vibe-based prompt into a ready-to-use travel itinerary.
- Vibe-based search: users describe what they're looking for in natural language - mood/aesthetic/feeling - and Ocio handles the rest
- Gemini-Powered Destination Matching: The Gemini API interprets the user's prompt and surfaces specific destinations that genuinely match the energy they're after.
- Points of Interest: For each destination, Ocio returns curated spots - restaurants, landmarks, neighbourhoods, and experiences - tailored to the original prompt, visualized on a map with pins.
- Videos: additionally, Ocio will display any video content from YouTube, Instagram, TikTok, etc. about the spot to give users an actual view of what they should expect
How we built it
- The AI Layer: Powered by Gemini API, which handles natural-language prompt interpretation and returns structured destination and POI data. Build into our FastAPI with Python.
- The Map Layer: Built with Mapbox, rendering each returned destination and POI as an interactive pin on a map. Developed in React.
Challenges we ran into
- Prompt-to-Structure Reliability: Getting Gemini to consistently return well-structured destination and POI data from open-ended, vibe-based prompts required significant prompt engineering to ensure the output was always map-ready.
- Vague Input, Specific Output: Translating something as abstract as a "feeling" into concrete, accurate geographic recommendations is inherently difficult. Striking the right balance between creative interpretation and useful results took iteration.
Accomplishments that we're proud of
- Mapbox Integration: Successfully pinned all AI-generated POIs onto a live, interactive map that updates with every new query.
- Vibe-to-Itinerary Pipeline: Built a system that bridges the gap between how people think about travel and how travel tools typically work.
What we learned
- Unstructured Input is Hard to Wrangle: Building on top of open-ended user prompts taught us how much prompt engineering matters when your output needs to be both creative and structured.
- Visualization Changes Everything: Putting results on a map transformed the experience from a list of suggestions into something that actually felt like a travel plan.
What's next for Ocio
- User Authentication & Profiles: Introduce accounts so users can log in, manage their trips, and build a personal travel history over time.
- Flight & Hotel Integration: Pull in real booking data so users can go from itinerary to booked trip without leaving the app.
Built With
- fastapi
- gemini
- mapbox
- python
- react.js
- typescript
Log in or sign up for Devpost to join the conversation.