Inspiration
I love traveling and making the most of my time in new cities, but I have always found that the hardest trips to plan are not full-day itineraries - they are short, awkward time windows. Things like 3-4 hour layovers, gaps between meetings, or brief cruise port stops often go underutilized because planning what is realistically possible in a short time frame takes more effort than it is worth. I did not want to spend precious time researching transit routes, estimating walking distances, and comparing attractions. I wanted to simply say: I have 4 hours here - what can I actually do?. Swift was inspired by the desire to remove planning friction and turn small pockets of time into meaningful travel experiences. Instead of wasting time figuring out what to do, I wanted a tool that lets people focus on actually doing it.
What it does
Swift is an AI-powered travel optimizer specifically designed for short time windows - layovers, business meeting gaps, cruise port stops, or any situation where you have 2-8 hours in an unfamiliar city. Unlike traditional travel apps built for multi-day trips, Swift uses Gemini 3's advanced reasoning to optimize itineraries measured in hours, not days. Users input their destination, available time, preferred pace (relaxed to energetic), interests, and any special requests. Gemini 3 then calculates travel times from airports or hotels, sequences activities geographically, accounts for opening hours, and creates a minute-by-minute itinerary that maximizes experience while respecting time constraints. What makes Swift unique is its transparency and adaptability. The app doesn't just tell you what to do - it explains its reasoning. Users can see what activities were excluded and why (too far, not enough time, conflicts with other stops), building trust in the AI's decision-making. If users want changes, they can conversationally request adjustments ("make it more relaxed," "add museums"), and Gemini 3 instantly recalculates the entire itinerary while maintaining context. Swift also features practical integrations: one-click export to Google Maps for real-world navigation, shareable itinerary links for travel companions, and automatic saving of all generated plans. Users build a personal library of micro-adventures over time, turning Swift into a travel assistant that remembers their preferences and proven itineraries. The result is a tool that transforms wasted airport hours into curated micro-adventures - proving that AI can handle complex, time-constrained optimization problems that traditional apps can't solve.
How we built it
Swift is powered by Gemini 3's advanced reasoning and multimodal capabilities to generate optimized micro-itineraries for short, time-constrained scenarios such as:
- 4-hour airport layovers
- 3-hour gaps between meetings
- short cruise port stops At a conceptual level, Swift optimizes for the maximum experience while taking into consideration the available time, travel time, activity duration, geographic location, and a return buffer. I built Swift using a modern, lightweight stack:
- Lovable.dev - to rapidly vibecode the product and iterate on UI and logic
- Supabase - to securely store configuration and protect sensitive data like the Gemini API key
- Vercel - for deployment and custom domain hosting
- Github - for version control and deployment integration Swift uses Gemini 3 to reason about time constraints, distance, and sequencing to generate realistic itineraries. To build trust and transparency, the app includes a "What We Skipped and Why" view that explains why certain activities did not fit (ex: distance, time conflicts, or return buffer constraints). The conversational refinement feature allows users to adjust plans dynamically, and Swift recalculates the itinerary while explaining the tradeoffs. Google Maps integration turns the plan into real-world navigation, bridging the gap between AI planning and actual travel.
Challenges we ran into
One of the biggest challenges was designing an intuitive user flow. While I am familiar with many consumer apps, this was my first time having to actively decide:
- what information should appear first
- how much detail is too much
- when to show explanations vs when to keep the UI simple
- how to prevent users from feeling overwhelmed It was tempting to put all of Swift's intelligence on one screen, but I learned that good product design is often about restraint - revealing information progressively so users are not overloaded. Another challenge was balancing AI flexibility with practical constraints. Giving users the ability to "risk being late" or add more stops required careful thinking about how to communicate tradeoffs without encouraging unrealistic plans. This forced me to think deeply about user intent, trust, and responsibility in AI-driven planning tools.
Accomplishments that we're proud of
Building Swift has been a rewarding challenge I have taken on, especially as someone without a strong technical background. I am incredibly proud of creating an application that solves a real problem I have personally experienced - wasting layover time in airports because planning felt too overwhelming for just a few hours. What stands out most to me is the transparency feature. Getting Gemini 3 to not just generate an itinerary, but to explain what was excluded and why, required careful prompt engineering and iteration. This wasn't just about getting AI to work - it was about making AI trustworthy and educational. I wanted users to understand the "brain" behind their itinerary, not just blindly follow it. I'm also proud of the iterative refinement capability. Allowing users to conversationally adjust their plans ("make it more relaxed," "add more food stops") and having Gemini 3 intelligently recalculate while maintaining context showcases the model's true power. It transforms Swift from a one-time generator into an interactive travel assistant. The Google Maps integration was a technical hurdle I'm proud to have overcome. Taking an AI-generated itinerary and seamlessly translating it into a real-world, navigable multi-stop route bridges the gap between planning and doing - making Swift actually useful the moment someone lands. Finally, building the shareable itinerary and history features pushed me to think beyond a single-use tool. Creating a system where users build a personal library of micro-adventures and can share proven plans with others adds a community dimension I didn't initially envision. Seeing how these features work together - generate, refine, save, share, navigate - makes me proud of creating something genuinely cohesive. Most importantly, I'm proud that Swift isn't just another chatbot interface. It's a purpose-built application that demonstrates what Gemini 3 can do when applied to a specific, well-defined problem. Every feature exists to solve a real friction point in micro-travel planning.
What we learned
This project pushed me to start thinking like a product manager, not just someone building a feature. I learned that building a good AI product is not only about whether the model is powerful - it is about whether the user experience makes sense. Some of my key learnings:
- designing users flows is hard, even if you have used many apps before
- small UX decisions have a big impact on usability
- too much information one screen can overwhelm users, even if the information is helpful
- explainability builds trust in AI products
- conversational refinement makes AI feel more like a collaborative assistant rather than a static tool This was my first time thoughtfully considering how users move through an app, what feels intuitive, and how to reduce cognitive load when presenting optimized plans.
What's next for Swift
Swift's current version proves that AI can optimize short travel windows, but there's clear room to grow based on what I've learned building this first application. The most immediate improvement would be adding real-time data - live transit delays, current wait times, weather conditions. Right now Swift optimizes based on typical conditions, but dynamic adjustments would make itineraries even more reliable when things change. I'd also love to add budget constraints. Many micro-travelers are budget-conscious, and having Swift optimize for both time and cost simultaneously would make it more practical for students, backpackers, and budget travelers. Community features feel like a natural evolution. Allowing users to browse and rate itineraries from others who've done similar trips ("4 hours in Tokyo from Haneda") could create a library of proven micro-adventures. This would add social proof and help new users feel confident trying Swift's suggestions. Finally, I want to improve personalization. If Swift could learn from user feedback - which suggestions they accept or skip - it could get better at understanding individual preferences over time. For now, I'm focused on refining what exists, gathering user feedback, and understanding how people actually use Swift in real travel situations. This is my first application, and I want to make sure the foundation is solid before adding complexity. The goal is simple: make every short travel window count.
Built With
- claude
- github
- lovable.dev
- supabase
- vercel
Log in or sign up for Devpost to join the conversation.