WANDERLUST · iOS AND WEB · IN BETA
Your saved places, put to use.
It started as an AI trip planner. Testing showed people travel a few times a year but live in their city every day. So it became an app that learns your taste from your Google Maps saves, finds you places at home every week, and plans trips anywhere.
- to import a list
- 10 min → ~1.5 s
- to import a list
- rounds of testing
- 8
- rounds of testing
- people interviewed and tested
- 17
- people interviewed and tested
- Product
- User research
- AI architecture
- Backend design
- Mobile UX
- Build
Two stories: making it fast, and making it worth coming back to.
PART 1 · MAKING IT FAST
I owned what happens after you tap Import.
I had 40+ places saved for Stockholm. Sorting them into days, checking opening hours and building a route took a whole evening. That should take five minutes.
In the first test, importing a list and getting a plan took up to 10 minutes. People thought the app was broken and left. The screens were fine. The problem was everything behind them, so that's where I went to work.
DECISION 1
Split the job between code and AI.
Behind the Import button there are two kinds of work. Some have one right answer: where a place is, when it opens, how long it takes to walk there. Others need taste: which café fits your morning, what makes a good day.
The first version handed all of it to the AI. That made it slow, expensive and sometimes wrong. I designed the backend so plain code handles the facts, and the AI only makes the judgement calls. Like a kitchen: the prep is done before the chef starts cooking.
- YOUPaste a Google Maps link
- CODERead the whole list in one go
- CODEEnrich details using Google Place API: rating, photo, type
- YOULook over your places
- AIPlan the days: order, pace, what fits together
Rules the AI never has to guess: distance · travel time · opening hours · breaks · meal times
DECISION 2
Eight rounds of testing to find out what was slow and inaccurate, and taking it away.
After each round of testing, I traced where the time went and fixed the backend myself. Every fix is something users can feel.
- What I found
- The app opened a hidden browser and clicked every place, one by one
- What I changed
- It reads the whole list in a single request
- What users notice
- The list appears in about a second, not minutes
- What I found
- The AI got every scrap of raw data: colours, layout, metadata
- What I changed
- The AI only gets the clean details it needs
- What users notice
- Faster plans, fewer made-up details, lower cost
- What I found
- Similar names sometimes matched the wrong place
- What I changed
- Each place is matched to its exact pin, within 50 m
- What users notice
- The café you saved is the café you get
- What I found
- When Google reshuffled its data, import broke
- What I changed
- The data is read by its shape, not its position
- What users notice
- Import keeps working when Google changes
- What I found
- If Google had no details, the place disappeared
- What I changed
- It's kept using the list's own information
- What users notice
- Nothing you saved goes missing
| What I found | What I changed | What users notice |
|---|---|---|
| The app opened a hidden browser and clicked every place, one by one | It reads the whole list in a single request | The list appears in about a second, not minutes |
| The AI got every scrap of raw data: colours, layout, metadata | The AI only gets the clean details it needs | Faster plans, fewer made-up details, lower cost |
| Similar names sometimes matched the wrong place | Each place is matched to its exact pin, within 50 m | The café you saved is the café you get |
| When Google reshuffled its data, import broke | The data is read by its shape, not its position | Import keeps working when Google changes |
| If Google had no details, the place disappeared | It's kept using the list's own information | Nothing you saved goes missing |
from 10 minutes to about 1.5 seconds
DECISION 3
Design the wait, too.
Even a fast backend needs a moment to plan. A blank spinner makes people doubt it, so the AI shows its progress step by step. If something fails, the message says what happened in plain words, and offers a backup: upload the list as a file.
- 1. Request received
- 2. Compiling your plan
- 3. Building your trip
- 4. Map appears, day by day
a 15 s wait you can see feels faster than a 5 s black box
PART 2 · MAKING IT WORTH COMING BACK TO
People travel a few times a year. They live in their city every day.
Once it was fast, a new problem showed up. People opened a trip planner before a trip and then forgot it. And when I asked why their saved lists went unused, many said the struggle wasn't abroad. It was at home, in their own city.
INTERVIEWS
12 people
All of them said they love the idea.
SAVED LISTS
7 of the 12
Never really re-visit their Google Maps saved list and forget many saved places. They wanted an AI assistant that 'knows' them and recommends places, either from their list or outside it.
RETENTION
3 of the 12
Flagged low retention outside travelling time, and suggested building it into the home city as well: short day-to-day chat, not just travel plans.
DECISION 3
Add city discovery on top of trip planning.
Set a home base and import your list. Every week, WanderLust suggests a few places near you to explore, so what you saved gets used in everyday life.
The AI reads each saved place and builds a picture of your taste. No big list yet? A short travel personality quiz gets you started.
- Home base
- Weekly picks
- Taste profile
- Personality quiz
DECISION 4
One taste profile, two uses.
The same profile that powers weekly picks at home plans your next trip. Going somewhere new? It already knows what you like, so you don't have to scout, save and import first.
- Save or import places
- AI learns your taste
- Weekly picks at home
- Explore and save more
- Plan a trip anywhere
Commercially, this turns a few visits a year into a weekly habit, and the profile grows more valuable the more you use it. That's what makes a paid tier worth having.
NOW
Agents with guardrails, and a sharper taste model.
Exploring with Claude Managed Agents, with guardrails and tests at each step, and improving the preference model with real usage. Training lower-cost model to handle preference tagging. Next I'm setting reliability thresholds before shipping: completion rate, p95 time and the largest list size it handles.
In AI products, speed is a design problem.
Retention lives in everyday life. Trips are the bonus.
NEXT CASE
Christie's Post-Sale
Making the wait visible.