4 Self-directed product, live

BaconAI

An AI travel planner: type a destination, get a day-by-day itinerary beside a live map. The interesting part isn't the AI call. It's how the trip page changed each time I used it and found something wrong.

Role
Product and interaction design, build
Focus
Visual direction, map interaction, information density

The idea

Most trip planners hand you either a wall of text or a map full of pins with no sense of order. BaconAI puts both side by side: an itinerary split into days, each with timed stops and a theme, and a map whose numbered pins follow the same sequence.

Finding a visual direction

From generic dark to warm editorial

The first version was a dark hero with white text, the default look of a hundred AI demos. I wanted something minimal with personality, compared a few colour and layout directions, and chose a warm magazine style: cream paper, charcoal text, one coral accent, a heavy Playfair Display for headlines and DM Sans for reading.

  • Cream
  • Charcoal
  • Coral

Less advertising, more use of space

The first landing page read like a sales page, with too many selling points competing. I stripped it back so the empty space did some work: one search field that accepts a plain sentence, quick-pick destinations so nobody faces a blank box, and a three-step explanation underneath.

BaconAI landing page: a large serif headline, Plan your trip to Rome, with travel photos in the side margins, a single search field, destination chips and a three-step how it works section
One question, one field, and suggestions for anyone who doesn't know where to start.

Three rounds on the trip page

Most of the design time went into the results page. Each round started with me using it and writing down what felt wrong.

Trip page for Kyoto: day-grouped activity cards with time, category, address, duration and price, beside a map with numbered pins
The whole trip plotted at once, with day filters top right.
An opened activity with an insider tip and three nearby alternatives, each with a Use this instead button
Opening a stop: an insider tip, then swaps you can drop straight into the day.

Plans that work on the ground

A route, not a scatter

An itinerary that zigzags across a city looks fine as a list and falls apart on a map. The planner clusters each day by neighbourhood, respects opening hours and meal times, leaves travel time between stops, and keeps a comfortable pace. Alternatives follow the same rules.

Keeping plans

Trips can be saved and reopened from a "My trips" page, which shows each day's theme and stops as a compact timeline, so you can see what you planned without opening the map view.

My trips page showing a saved Kyoto itinerary as a day-by-day timeline with a View and edit button
Saved trips as compact day timelines.

Constraints

Cost shaped the product

I switched mapping from Mapbox to MapTiler for its free tier. The AI started on OpenAI, moved to Groq's free models with a fallback across three of them, and now runs on Claude after those models were retired. Knowing what a platform will actually cost, and letting that reshape the experience, is part of the design job.

An interaction that felt wrong

Highlighting a stop made the map stutter, because every change redrew it. Updating the map directly instead of re-rendering it made selection feel instant. An engineering fix, but I only found it because the interaction felt off.

Stack