Building and live-testing a travel companion app with Lovable
Company
Personal experiment & AI exploration
Role
Product Designer, Developer
Timeframe
September-November 2025
TL;DR
Contents
Context & Challenge
Building with Lovable: 3 Iterations
Product Insights
Next Steps: Concept Designs
Context & Challenge
My girlfriend and I were organizing a family trip to Turkey - 4 locations with different accommodations, 5 people arriving on different flights.
We knew from experience that as organizers, we will get a lot of questions: "Which hotel are we at tomorrow?" "What time is check-in?" "How long are we staying?". And the information was scattered across Booking.com, Airbnb, emails, and group chats.
A bit earlier at a vibecoding meetup I met someone who'd faced a similar situation and showed me a Lovable-built app, designed to accompany their trip. Inspired by this example and eager to experiment with the tool myself, I started assembling a product requirement document.
🧐
Main problems: our hypotheses
– Fragmented information across different platforms and message threads.
– Uncertainty about "what's next" and "where are we going" creates stress.
– Repeated questions about itinerary addressed to trip organizers.
🎯
App goals
– Consolidate trip information - flights, hotels etc. - in a convenient form.
– Reduce organizer burden, let everyone find key data easily.
– Assemble helpful travel resources (weather, phrasebook, checklists).
👤
User roles and needs
Trip organizers:
Need a centralized information hub to make trip management easier and reduce the mental load of being a "live information desk." Instead of repeadetly answering the same questions, we wanted to focus on enjoying the trip.
Trip participants:
Get easy access to trip details without having to ask organizers each time or dig through emails and message threads. A way to feel informed and prepared.
📲
App Features and UX
4 tabs:
Home, Itinerary, Stays, Explore
Features:
– Current status and next upcoming events (flights, accommodations)
– Itinerary plan day by day
– Preparation checklist
– Weather forecast
– Local language phrasebook
With a simple product requirements document in place, including some stylistic guidance, I turned to Lovable to see how quickly and accurately would it create a functional prototype.
v1 / basic prototype / 23.10
I had Lovable generate a 4-tab prototype:
Home: Trip countdown, weather, next flight and accommodation, trip highlights
Itinerary: Timeline with all flights, accommodations, car rentals, and drives
Stays: Detailed accommodation cards with addresses, check-in times, duration
Explore: Placeholder for activities (to be filled later)
✅ Working prototype with requested functions from a single prompt
⚠️ Decent visual hierarchy, but otherwise generic UI
❌ Minor mistakes such as wrong timeline logic
v2 / polish & localization / 30.10
App refinement some days before departure:
UI
– Hero image, better typography hierarchy
– Purple accent color
– Worked on spacing and card layouts
Localization to Russian
– Lovable handled ~80% automatically, but remaining 20% required manual QA
New features
– Trip preparation checklist
– Russian-Turkish phrasebook
– Authentication for basic security
⚠️ UI improvements required quite a lot of attention, as design wasn't really systematized. For example, Lovable created different components for cards on different tabs.
⚠️ Translation was fast but imperfect. Lovable's own audits missed many details. But for a family trip, 90% accuracy was fine.
💡 First "validation phase" surprise was that when I shared the app with the family the feature that caused the most excitement was the phrasebook. And I added it almost as an afterthought :)
v3 / real world testing and new features / 01.11
We arrived in Turkey on October 31st. I immediately spotted problems:
#1: Misleading homepage
The homepage showed "Your next flight: Cologne → Antalya" and "Your next accommodation: X" when we were already at the hotel. A time-based logic was needed.
Fix:
– Change the greeting to "Welcome to %current city%"
– Only show flights from 18:00 previous day to landing time
– Show accommodation data starting from 12:00 check-in day until check-out time.
#2: Expenses
At our first dinner together, the How are we splitting costs? question came up.
A classic group travel issue that I didn't think of in advance: one person pays for the car rental, another one covers the restaurant bill etc.
I spent that evening building an expense tracker:
– Add expense: amount, currency, description, date
– Select who paid and who benefits
– Automatic conversion between currencies
– Settlement calculations showing "Who Owes Whom"
✅ Lovable handled this new feature really well, adding the necessary functionality in one go. I only did minimal UI refinement — given previous instructions on visual styling rules (primary / secondary buttons, brand color).
⚠️ Security note: When publishing the new version with improved login security, Lovable's security check flagged an issue with login credentials, and it took a few iterations to solve it. But in the end, it was able to correctly identify and fix security itself.
💡 Expenses became the most-used feature in the app. Not the carefully constructed itinerary, but a function built on the go to solve an immediate pain point.
Reflections on Lovable
What it handled well:
✅ Rapid functional prototyping: working 4-tab app with just a few prompts
✅ Complex features added quickly
✅ Accurate calculations – expenses math was 100% correct
✅ Decent UI quality for an MVP
✅ Built-in security checks and self-correction through iteration
What required extra attention:
⚠️ Generic visual style - and improvement attempts took significant efforts
⚠️ Localization needed a lot of manual QA
⚠️ Authentication setup required multiple iterations
⚠️ Some information architecture features, such as the time-based hotels & flights logic, needed detailed repeated instructions
Product Insights and Next Steps
⚖️
On user priorities
In the end, what users valued most wasn't the itinerary/logistics infrastructure that was our initial focus. They got more excited about discovery (the phrasebook) and relieved by solving acute pain (expenses calculation), whereas the itinerary was essential but kind of invisible.
These findings come of course from a really small "study", with 5 participants on one trip. But it reinforced a principle: sometimes users need something different than you expect, and when you give them that, engagement follows.
🧩
On problem scope
Initial focus of this prototype was our specific family trip and tool experimentation. In the meantime, conversations with other trip organizers, including professional tour guides, revealed similar pain points.
Organizers collect trip information from different sources, invest time into creating itinerary documents, not necessarily well-designed, and those still get lost. So both trip participants and organizers face friction and at times lack orientation (instead of enjoying the trips).
This suggests two potential directions in development of this idea:
Collaborative group travel (friends/family with distributed organizer roles)
One-to-many model (professional tour operators preparing itineraries for participants)
Next Iteration: Concept Designs
Taking learnings from the MVP test, I'm working on improving the UX – so that the app could be a helpful group trip companion – and of course a more polished UI.
The concept below is focused on the small group travel / b2c model (shared space that can be created and edited by multiple participants, expenses tracking) rather than the b2b2c, but I'm exploring both directions.
Trips list view
Trip space / before trip
Trip space / during trip
Itinerary
Key UX changes in process
In-app trip creation and editing (managed manually via the Lovable interface before)
Participant/invitation management with permissions (organizer vs. participant roles)
Multiple trips support
Merging "Stays" tab with "Itinerary"
Looking into new features: whether the "explore" tab should provide (AI-powered) activity suggestions, local highlights, or be removed for an easier 3-tab structure
























