Replan

AI exercise · 2026

Design exercise — Solo, research, framing, ideation, visual system, build, self-audit

Consumer mobileAIDesign exercise

Solo take-home: I killed the destination-picker and built the day-of replan instead. Design exercise — no live data engine.

Replan

Overview

An AI-first design exercise, a take-home brief, solo and end-to-end. The brief was "design a travel itinerary planner." I chose to solve a narrower problem than that: every travel app helps you make the plan; none of them help you when the plan falls apart. Constraint: a prototype with written, not computed, times — and no real traveller sat next to me on a rainy Tuesday.

Every travel app helps you make the plan. None of them help you when the plan falls apart, which is exactly the moment you need help.

Replan knows what in your day is fixed and what can bend. It tells you the truth about your day before you leave. And when the day breaks, rain, a closed door, tired legs, it rebuilds around what's left and shows you exactly what it changed and what it cost you.

Every trip gets replanned. This one makes it a feature.

The problem

I started where the brief pointed, helping people pick a destination, and ended up somewhere else entirely, because the evidence kept pointing away from it.

  • Travel apps are built to sell you things, not to plan your day. What ranks highest is shaped by ads, commissions and availability, not by how well it fits your actual trip. That's not a flaw in the product; it is the product. A plan that quietly falls apart on day two still made a sale.
  • AI-generated itineraries look right and don't work. The failure modes are consistent: days so over-packed you're rushing with no room to breathe; places that have already closed down; stops grouped far too far apart to do in one day. The plan is confident. The day is impossible.
  • A plan that was right yesterday is wrong today. Weather, sudden closures and transport delays break it, and it has no way to notice.
  • And the finding that reframed the exercise. I went looking for how experienced travellers actually plan, and kept seeing the same behaviour: they group stops by hand on a map so they're not doubling back, they keep tweaking for weeks, they lock it in just before they fly, and then leave everything from that point on to "day-of decisions." They print it out. They expect it to change.

Every product in this market serves the plan you make. Not one serves the replan you'll actually do. That's the hole. And no travel app can fill it, because a broken plan doesn't sell anything.

The insight

Making a plan is easy. Making one that survives the day is hard. Fixing one that didn't is unbuilt.

An AI will hand you a beautiful day that is physically impossible. So the design problem was never "generate an itinerary." It's three things nobody has bothered with:

  1. Show your work: why is this stop even in my plan?
  2. Tell the truth: this day doesn't actually fit, and here's the trade-off.
  3. Fix it: it's raining and I'm exhausted. Now what?

Who this is for

Meera, 29. Four days in Kyoto, booked six weeks out. She planned it herself, no agent, no package. She's read enough blogs to know what she wants and enough forums to distrust a top-10 list. She has three things she absolutely won't miss, and a loose sense of the rest. Day two is rain. Her plan doesn't know that yet.

Designing for: the traveller who plans their own trip. 3–7 days, destination broadly decided, and enough experience to know that no trip survives contact with a Tuesday.

Explicitly not designing for:

  • Group trips. A real, painful problem. Deliberately left out.
  • Booking and payments. I'm not building a shop. That absence is a decision, not an oversight.
  • Business travel, digital nomads, months-long trips. Different jobs entirely.

What I'm assuming, said out loud, not buried:

  • Place data (opening hours, closing days, location) is available and reliable. It's faked in this prototype.
  • Weather and travel times can be checked live.
  • The traveller has signal while they're there. This is the assumption I'm least comfortable with, the moment you most need your plan is the moment you have no bars.
  • I'm not solving how to pick a destination. That was Idea 1. I killed it.

What I ideated

Three ideas. Two are dead.

IdeaWhat it wasVerdict
1 · The GlobeA 3D Earth you spin. Click a city, set your days, watch a "how far can I get" ring bloom outward. Drill in, generate.Killed
2 · The Group BoardGroup planning. Vote on places, settle arguments, split the day when people want different things.Killed
3 · The Living PlanA plan that can bend. Every stop shows why it's there. It tells you what won't fit. When the day breaks, it rebuilds, and shows you the bill.Built

Idea 1 · The Globe, and why I killed it

I built this one first, because it's the one I wanted to build. A slowly turning Earth. Click San Francisco and a ring blooms outward as you add days, three days reaches Big Sur, five reaches Yosemite. It's genuinely beautiful, and I'd happily have spent the whole exercise on it. Then I asked what it was actually for, and the answer was: not much.

Idea 1, live: spin the Earth, add days, and watch your reachable radius bloom outward, three days reaches Big Sur, five reaches Yosemite. · Open full screen
Why I killed itWhat I found
It helps the fewest peopleIt only helps someone who doesn't know where they're going. Most people show up already knowing. I'd designed for the smallest group in the room.
You pay before you get anythingThree clicks before you learn a single useful thing. All cost up front, payoff later.
It shuts people outA spinning globe ignores reduced-motion settings, has no sensible keyboard path, and makes a real slice of people feel sick. Fixing that means removing the thing that made it beautiful.
Wrong jobIt's built for wonder. Meera's actual job is a plan that works on a rainy Tuesday. Wonder is the designer's pleasure, not the user's problem.

The honest version of this story: I started at the wrong end of the problem. I designed the moment of inspiration, because inspiration is the fun part to design. The traveller's hard moment is 8am on a rainy Tuesday, unglamorous, and nobody wants to design it. Which is exactly why nobody has. So I killed the beautiful thing and went there instead. It survives as an optional Explore mode for the few people who really are starting from nowhere. It is not the front door.

Idea 2 · The Group Board, and why I killed it

Group trips are where planning truly falls apart: one person builds the plan, four people have opinions, and a WhatsApp thread decides nothing. It's a problem of agreement, not of discovery. Killed for one reason, plainly: shared editing, voting, settling disagreements and splitting the day per person cannot be built honestly in a short span.

What I built, the Living Plan

The core idea, everything else follows from this. Every itinerary product I looked at treats a day as a rigid list of times. That one choice is why none of them can fix themselves: when reality moves, the list has no idea what's allowed to bend. So I treated a day as three different kinds of thing:

TypeWhat it isWhat happens when the day breaks
FixedCan't move, a reservation, a booked tour, the sunset she flew here forNever moves. Everything else moves around it.
FlexibleAn intention, not a timestamp, "a temple morning", "a slow coffee hour". A rough window, not a clock time.Slides, swaps to another day, or waits
Breathing roomDeliberate empty time, a real thing in the plan, not a gap between thingsTakes the hit first

Breathing room is the whole design. Every other tool treats empty time as wasted space, somewhere to squeeze one more attraction. I treat it as the thing holding the day up. A plan with no breathing room cannot survive a day. And an app that sells you a full day is optimising for how impressive it looks, not for how your legs feel at 4pm.

The three rules. The system follows three rules, everywhere, with no exceptions:

  1. Never quietly drop something she said she can't miss. If it won't fit, say so, and show the choice.
  2. Never hide a trade-off. Every change costs something. Show the cost.
  3. Never lie about time. If she'd get there twenty minutes before closing, the card says twenty minutes, not "Visit Kiyomizu-dera."

Those three sentences are the entire design spec. Everything below is just what they force.

The Living Plan, live: a four-day Kyoto trip you can actually poke, reality-check a day, run the morning replan, and watch the receipt. · Open full screen
  • The day runs top to bottom as a single ribbon. Fixed things have solid edges. Flexible things have soft ones. Breathing room is drawn as visible empty space, the white space in the interface is the breathing room in the day.
  • Travel time is drawn, not hidden: a visible thread between stops with the real number on it. Most apps show you five pins on a map and let you discover the ninety-minute bus ride by yourself.
  • Every stop carries a "why it's here" tag: you said: slow mornings · 12 min from your hotel · closes 16:30, go early. Never #1 on TripAdvisor, there are no rankings in this product, because a ranking is where the commission hides.
  • Each day shows an honest day total: 6h 10m out and about · 1h 40m travelling · 2h 10m free. Plain numbers. No score out of ten.
Day 2, made readable: fixed and flexible stops, the real travel time drawn between them, breathing room as visible empty space, an honest day total, and the day's route on the map.

The reality check, the day, told the truth

The system warns; it never blocks. It's her trip. The job is to make sure the decision is informed, not to make it for her.

This day doesn't fit. Fushimi Inari and Arashiyama are 2h 40m of travel apart. One of these is going to feel like a commute. → Move Arashiyama to Day 4 (it swaps with the coffee morning)Keep both (you'll need a 7:30 start)

Two real choices, each with its real cost. And she can ignore both, the warning just shrinks into a quiet marker, so the plan never pretends the problem went away. Why this is the hardest screen to get right: the honest version talks the user out of a busier day. Every commercial instinct in travel pushes the other way, a fuller day looks like a better product. Designing the restraint in is the actual design decision.

The reality check on Day 3: the day is honestly over-full, Fushimi Inari and Arashiyama are 2h 40m apart, so it names the trade-off, offers two real choices, and still lets her ignore it.

The replan, the day, when it breaks

This is the screen the market doesn't build. It opens once each morning and asks for ten seconds:

  • Weather: shown, not asked. "Rain until 2pm."
  • How you're feeling: one slider: Fresh ←→ Wrecked. No numbers. At 8am on day three, nobody can rate their own legs out of five.
  • Today: two taps: As planned · Take it easy.
The morning check-in: weather shown, not asked; one Fresh-to-Wrecked slider instead of a 1–5 scale; and two honest choices.

Then it rebuilds, as a preview. Stops slide, an outdoor morning swaps to a clear day, the breathing room takes the hit. Nothing is committed until she says yes. The system proposes. She decides. And then it shows her the bill:

Kept, Nanzen-ji · you said you couldn't miss this one ↔️ Moved, Arashiyama bamboo grove → Day 4 · it's outdoors, and Day 4 is clearAdded, Nishiki Market · indoors, 8 min walk, you said food ⚠️ It cost you, you lose the sunset window at Kiyomizu-dera on Day 4

The receipt: what was kept, moved and widened, and what it cost, with nothing committed until she confirms, and a full undo.

"Here's what I changed, and here's what it cost you." Every other product hides its thinking and just hands you a new answer. This one shows its working and names the price. That one panel is the case study, showing the work, telling the truth, and fixing the day, in a single object. And Undo everything isn't optional: a fix you can't take back is a fix nobody will ever dare to tap.

How I built it, decisions first, then the AI

I don't hand an AI a vibe and hope. I write the rules, the rules are the source of truth, and the agent builds against them. This is the part of my process I most want you to look at.

The visual system

ChoiceValueWhy
Background#FAF8F5Warm off-white. The plan should feel like paper, because paper is what people actually end up carrying.
Text#1A1815Not pure black. Easier on the eyes in sunlight.
Accent#C8442BOne colour only. Torii red. Used exclusively for fixed stops and for costs, the two things she must never miss.
Breathing room#EDE9E2Drawn faintly, but drawn. It exists. It is not nothing.
Warning#B8791FAmber, not red. A tight day is a trade-off, not an error.
TypeSerif for the human voice, sans for the system voiceYou should always be able to tell which one is talking to you.

The rules the AI had to build against

1. Never show a stop without saying why it's there.
2. Travel time over 45 min is shown on the plan. Never buried in a card.
3. A day over 8 hours triggers the reality check. Warn, never block.
4. Breathing room is a real object with a minimum size. Never squashed to fit more in.
5. Something she can't miss is never dropped to make the maths work.
6. Every rebuild produces a "what changed" panel. No silent edits. Ever.
7. Every rebuild can be undone completely.
8. Reduced motion: the rebuild happens instantly, and the "what changed" panel still appears.

I audited my own prototype against my own rules, and it failed three of them

Once it was working, I stopped building and tested the build against the three rules, line by line, path by path, trying to break it. It broke. The most damning finding: a product whose entire argument is "I will always tell you the truth" had a control that asked the user how they were feeling, and then ignored the answer.

What I foundWhich rule it brokeWhat I did
Two of the three ways to change the plan skipped the receipt. Adding a place and resolving a reality check both rewrote the day with no "What changed" panel.Never hide a trade-offFixed. Every path that touches the plan now produces the same receipt, with the same undo.
A third option that was secretly the second one. "Change it up" ran exactly the same code as "Take it easy."Never lieDeleted. Two honest options beat three where one is a lie.
The feelings slider fed nothing. Fresh↔Wrecked was read and never used. Pure decoration, in the one moment the product asks the user to be honest.Never lieWired it. Wrecked now genuinely drops a stop and widens the breathing room.
The day total kept lying after the day was fixed. Resolve a reality check and it still read "over a full day."Never lie about timeFixed. It recomputes, or it doesn't show.
There was no "this can't be fixed" state. "Take it easy" always succeeded, so rule 1 had never actually been tested.Never quietly drop a must-not-missBuilt it. Now, when the only way to lighten the day is to move something she said she can't miss, it says so and hands the choice back.
Contrast failed WCAG AA in two places, the amber warning and the muted secondary text.,Fixed. Both now pass AA.

The lesson: the pretty parts held up fine. Everything that broke was in the states nobody demos, the paths that skip the receipt, the option that lies, the failure that never happens. That's where design actually lives, and it's exactly the part an impressive-looking prototype lets you skip. So I went looking for it on purpose.

Where I overruled the AI

The first Kyoto plan the model gave me was the textbook failure: six stops a day, zero breathing room, no travel time shown, and a temple scheduled twenty minutes before it closed. It was confident, it was beautifully written, and it was undoable. That isn't a prompting mistake. It's what the model is for, it optimises for how much value the answer appears to contain, and more stops reads as a better answer. A designer optimises for how the day actually feels to live, and a lived day has legs in it.

So I overruled it, and turned the disagreement into a rule: breathing room became a real object with a minimum size, and the day got a ceiling. Now the model generates inside a system I designed, instead of defining the system itself. Anyone can produce more, faster, with AI. The value is in knowing where the model is reliably wrong, and building the guardrail that makes it right by default, for everyone on the team, not just for you.

What I didn't build

Deliberate, these are positions, not omissions:

  • Booking. The moment this product earns a commission, those three rules start to bend. Its absence is the product.
  • Group trips (Idea 2). A real problem, and the next one. Faking shared editing in the time I had would have been worse than declaring the gap.

Known gaps, I ran out of hours, and I'd rather say so:

  • There is no real time engine. Travel times, opening hours and closing times are written, not calculated. The prototype shows what an honest feasibility model would say; it doesn't yet compute it. This is the biggest gap.
  • Nothing persists. No offline mode, no saved state, reload and the plan is gone.
  • The map doesn't move. It shows the route for each day but doesn't redraw after a rebuild. A map that contradicts the plan is worse than no map, so this is the first thing I'd fix.
  • The three rules are followed, not enforced. Nothing in the code stops a future path from dropping a must-not-miss stop. Today it's honest by construction; it should be honest by constraint.

And the one I most want: watching a real person replan mid-trip. I inferred day-of behaviour from forums and travel communities. I'd rather sit next to someone at 8am on a rainy Tuesday and watch what they actually do.