Inspiration

You land in a new city with a free evening and no plans, and fall into the same spiral — ten tabs of Maps, reviews, and booking sites — only to end up somewhere touristy or already closed. Travel tech is built for the planner, but the market is moving the other way: nearly 40% of trips are now booked last-minute. Nobody was building for the traveler who refused to plan and is here right now. So we asked: what if a great night out took one messy sentence instead of an hour of research?

What it does

Unplanned is a conversational travel concierge for spontaneous, in-destination travelers:

  • Chat onboarding — tell it something human like "in Rome tonight, love views, hate crowds," and it gets you straight to suggestions, no forms.
  • Recommendations you steer — accept or pass on each pick; passed activities drop out of future suggestions, so it learns your taste as you go.
  • Your evening, sorted — accepted picks build a plan for the day, shown on an inline map with a booking flow.
  • It acts, not just suggests — sample in-app bookings and external booking links close the loop, and a dedicated phone concierge can call venues to make reservations for the spots that only take bookings by phone.
  • Proactive nudges — location-aware suggestions during the trip.

    How we built it

  • Web app (primary surface): React 19 + Vite. Chat onboarding, recommendations with accept/pass, a single-day activity plan, an inline recommendation map, and a booking flow, styled in plain CSS with Lucide icons.

  • Backend: a Hono server on Node 20 + TypeScript, with SQLite (better-sqlite3 + Drizzle ORM) holding a shared "trip memory." Destination and trip details are parsed deterministically first, so the core flow stays reliable, then enriched by AI.

  • AI layer: an LLM via OpenRouter (OpenAI SDK, defaulting to google/gemini-2.5-flash-lite) handles extraction, tool use, and journal generation. Zod shapes the output into reliable structure; Luxon handles times and time zones.

  • Recommendations: drawn from a local catalogue or live Viator experience search via the MCP SDK. Open-Meteo provides geocoding and forecast so suggestions fit the place and the weather.

  • Proactive suggestions: a scheduler surfaces timely, location-aware recommendations during the trip.

  • Phone concierge (sidecar): a separate Python / FastAPI service that places real reservation calls via ElevenLabs + Twilio, with a simulated mode so it demos without live telephony. We kept the browser experience the most deterministic, runnable surface, with the AI and phone capabilities layering on top. Backend and frontend typechecks and production builds pass.

Challenges we ran into

  • Scoping in a day — we made one vertical (things to do today) reliable instead of five shallow ones.
  • Reliable by default — parsing trip details deterministically means the core flow always runs predictably, with the AI layered on top rather than in the critical path.
  • Migrating the LLM layer mid-build — moving the AI from Anthropic to OpenRouter while keeping extraction, tool use, and generation working took real re-plumbing.
  • Joining the phone service to the product — the calling service works standalone; wiring it cleanly into the main flow is an integration seam still in progress.

    Accomplishments that we're proud of

  • A working web MVP that runs end to end — chat to recommendations to a booked plan.

  • A real phone concierge that places live ElevenLabs/Twilio reservation calls, with a simulated mode for safe demos.

  • Live experience search via Viator and weather-aware suggestions through Open-Meteo — real data, not just canned results.

  • Proactive, in-trip suggestions that reach out at the right moment, not just on request.

  • A genuinely broad vertical slice — web, AI, messaging, and voice — shipped in a single day, with passing typechecks and production builds.

What we learned

  • Spontaneity is a real, growing market — the shrinking booking window is a genuine tailwind.
  • The wedge is focus: the giants plan at scale, but owning the "I didn't plan and I'm here now" moment is defensible because it's narrow.
  • Deterministic-first, AI-second is a strong hackathon pattern — it keeps the demo bulletproof while still feeling smart.
  • Action beats answers — the moment it started doing (booking, calling), it stopped feeling like a demo.

What's next for Unplanned

Wire the phone concierge into the main flow, fully live-test the proactive suggestion path (and photo captioning), give the frontend thorough browser QA, add real booking partners beyond samples, and expand beyond a single city toward an always-on concierge for your whole trip.

Share this project:

Updates

Submission history