Skip to content
TripWhat

TripWhat

AI for trip planning

Created on 11th October 2025

TripWhat

TripWhat

AI for trip planning

The problem TripWhat solves

TripWhat remedies the daunting complexity of organizing multi-city trips by reducing hours of research to minutes of AI-driven chat.


What People Can Use It For

Instant Trip Planning

  • Flights and hotel reservation integrated
  • Live events include feature
  • Create full multi-day trip plans for individuals or groups
  • Get customized suggestions based on travel type (adventure, cultural, relaxation, business)
  • Get budget-sensitive suggestions that honor budget limits

Conversational Travel Assistant

  • Pose natural language queries such as "Tell me the top restaurants in Paris" or "What is the forecast in Tokyo next week?"
  • Receive real-time answers without having to flip between several apps
  • Refine travel itineraries via basic chat dialogue

Detailed Travel Logistics

  • Look at day-to-day timelines with morning, afternoon, and evening events
  • Receive comprehensive flight and hotel recommendations within your plan
  • View travel paths and distances between locations on interactive maps

How It Eases Travel Planning

  • Replaces over 10 apps (Google Maps, TripAdvisor, Flight Search, Weather, Budget Tracker) with a single smart platform
  • Trims planning time from 6–8 hours to less than 10 minutes leveraging AI-driven intent detection and LangGraph orchestration
  • Avoids decision fatigue by filtering thousands of attractions based on individual preferences and budget limits
  • Integrates with Google Calendar so your trips are automatically added to your schedule
  • Saves money with budget-aware recommendations that maximize experiences within your financial limits

Why TripWhat is Different from Generic AI Services

Specialized vs. General AI

Generic AI (ChatGPT, Claude, etc.):

  • Generic responses with no real-time data
  • No ability to search live flights, hotels, or attractions
  • Hallucinated information (restaurants that don't exist, wrong prices)
  • Static conversations that don't persist
  • No visual maps or interactive itineraries
  • You manually copy-paste everything

TripWhat:

  • Live integration with Amadeus (flights), Google Places (sights), OpenTripMap (tourist information)
  • Actual prices, actual availability — not AI fantasies
  • Persistent trip state — your itineraries are stored and editable
  • Interactive maps displaying all activities with coordinates
  • Budget tracking with automatic cost estimation per day
  • One-click export to Google Calendar

Technical Advantages

Multi-Tool Orchestration (Model Context Protocol)

TripWhat employs 10+ expert tools (search for places, calculate distance, search for flights, find restaurants) that get triggered automatically depending on your inquiry.
Generic AI can respond only with text — no API hooks.

Smart Intent Recognition

LangGraph state machine parses your message and identifies what tools to invoke (e.g., "I want to go to Rome" → invokes destination search + attractions nearby + hotel search + budget calculation).
90%+ accuracy in interpreting travel-related requests.


Ideal For

  • Independent travelers looking for effective planning
  • Families planning multi-city trips
  • Digital nomads coordinating frequent travel
  • Travelers finding off-the-beaten-path gems
  • Anyone frustrated with conventional travel planning

Challenges we ran into

1. Duplicate Activities Across Days

The Problem:

When generating multi-day itineraries, Days 1, 2, and 3 were showing identical activities. Users would get the Eiffel Tower repeated three times instead of a diverse travel experience.

Root Cause:

Each day was making separate API requests without tracking what had been used
No global state to prevent activity repetition
Distribution algorithm was naive and didn't share context across days

How I Fixed It:

Caching for 24 hours responses and filtering

2. API Rate Limiting Issue

The Problem:

OpenTripMap API was returning 429 (Too Many Requests) errors during itinerary generation, causing the entire flow to fail.

Root Cause:

Making rapid-fire requests (one per category per day)
No retry mechanism
No exponential backoff

How I Fixed It:

Exponential backoff and first category analysis and identification through ML

Impact:

Rate limit errors dropped from ~40% to <1% of requests.

3. Google Places API Migration Complexity

The Problem:

OpenTripMap had limited data quality and outdated information. Migrating to Google Places required mapping user intents to 100+ place types.

The Challenge:

Google Places has 122 different place types (museum, art_gallery, tourist_attraction, etc.)
User queries like "show me art in Paris" needed to map to multiple types
No built-in category detection

How I Fixed It:

Created google-places-types.ts with comprehensive type mappings
Used GPT-4o-mini for intelligent intent-to-type detection
Fallback to default types if LLM fails

Impact:

Search relevance improved by 85% with real-time, accurate place data.

4. Socket.io Real-Time Sync Issues 📡

The Problem:

Chat messages were out of order or duplicated due to race conditions between Socket.io and REST API calls.
Frontend was making both REST POST and listening to Socket.io events
No message deduplication
Multiple socket connections per user

How I Fixed It:

Frontend: Deduplicate messages by ID
single socket per connection

Impact:

Message sync issues reduced from ~15% to 0%.

5. LangGraph State Management

The Problem:

State wasn't updating correctly between LangGraph nodes. The searchResults field was being overwritten by subsequent nodes.

Root Cause:

Misunderstanding of LangGraph's reducer functions
Using reducer: (left, right) => right for arrays
Not returning partial state updates correctly

How I Fixed It:

Used concatenate and partial state updates were fixed

Impact:

State flow became 100% predictable with no data loss.

6. Image Fallback Problem

The Problem:

Activity cards were showing random Unsplash stock photos instead of real place images from Google Places API.

Root Cause:

Multiple fallback layers (Google → Unsplash → placeholder)
Old code still generating Unsplash URLs
Frontend had aggressive fallback logic

How I Fixed It:

Google Places plus OpenTripMap fallback

Impact:

100% authentic Google Places photos displayed. No more confusing stock images.

7. Flight API Integration Complexity

The Problem:

Amadeus Flight API required IATA codes (JFK, CDG), but users enter city names. Also, their access token expires every 30 minutes.

How I Fixed It:

OpenAI LLM basedweb-search fallback for lookuo

Impact:

IATA lookup success rate: 98%.
Token refresh errors: 0. API cost reduced by 80% with caching.

Discussion

Builders also viewed

See more projects on Devfolio