Let's talk
CASE STUDY

Building a Travel Itinerary Platform with Multi-Agent AI, Maps and Print-Ready Output

Nexora built a full-stack travel planning platform for individual travelers and travel businesses, with web and mobile apps, a multi-agent AI copilot, interactive maps and exactly-once payments, and handed it over in April 2026.

Client
Travel itinerary planning platform, Europe (confidential)
Industry
Travel
Year
2025
Engagement
Delivered and handed over April 2026
1,500+Source files (TypeScript and JavaScript)
30GraphQL schema domains
8+Third-party integrations
20User-facing features

The Challenge

Planning a trip is a messy job. Dates move, destinations get reordered, flights and hotels live on other sites, and the whole group needs to see one plan. The client wanted one product for two audiences: travelers who plan their own trips, and travel businesses that plan trips for customers and want their own branding. Both needed web and mobile, an AI assistant that knows the trip being edited, maps, printable output and payments.

What Nexora Built

Nexora built the platform through its full lifecycle, from development to handover in April 2026. It is written in TypeScript throughout, so the web app, mobile app and server share types and some code.

  • Web app and a React Native mobile app on one GraphQL API
  • A multi-agent AI copilot that suggests places and reshapes itineraries
  • Interactive maps with clustering, transport routes and a map of visited countries
  • Business tools: team and client management, trip templates, white-label branding and a trip pipeline board
  • PDF itineraries, printed photobooks and automatic trip videos
  • Group budgeting, eSIM purchase and subscription billing
Travel illustration
One Codebase, Two Audiences
Web, mobile and business embeds share one GraphQL API and one data layer.

Multi-Agent AI Copilot

The copilot is the most interesting technical piece. An orchestrator reads the user’s message, the conversation and the state of the trip, then routes the request to a specialist agent: one for places and activities, one for itinerary building and routing, one that judges quality and feasibility. Splitting the work this way keeps each agent narrow, which reduces made-up answers and makes failures easier to trace. If the language model is unavailable, the orchestrator falls back to keyword rules, so the assistant degrades instead of going down. Agents also stream their replies for a live chat feel.

How the Copilot Routes a Request
An orchestrator sends each message to a specialist agent, with a rule-based fallback.

Day Plans That Survive Reordering

Users drag destinations around constantly, and the daily schedule must follow without losing their notes. The destinations list is the source of truth; the day-by-day view is rebuilt from it in about 20 to 50 milliseconds. Activities are tracked by destination and day offset instead of absolute position, so a reordered trip keeps its annotations. The same routine handles overnight transport, stopovers, locked dates and orphaned items.

Payments That Count Once

Subscriptions and purchases arrive from the payment provider as events, which can be delivered more than once. Events pass through a queue with long polling and a 48-hour deduplication window in Redis, so the combination of at-least-once delivery and dedup gives exactly-once processing. Personal and business purchases are routed by metadata, so one pipeline serves both.

One Product for Travelers and Travel Businesses

Business mode is detected from an environment setting, a query parameter or the subdomain. Agencies get their own colors through CSS variables, trip templates they can clone for each customer, an asset library and three subscription tiers with usage quotas. PDF itinerary components are written once and used in both the browser preview and the server renderer, so what the agency sees is what gets exported.

Infrastructure and Delivery

The backend ships as a multi-stage Docker image to a cloud host with at least two machines and auto-scaling. Pushes to main run unit tests and then deploy, with retries and a team notification. Each pull request gets its own preview environment and a summary of what to test, which lets QA work in parallel. Secrets come from a secrets manager, uploads go to object storage and two separate Redis instances keep cache and job queues scaling independently.

Results

The platform was delivered as a complete product and handed over in April 2026, including its documentation of architecture and trade-offs. The team also recorded the compromises it accepted, such as a few mixed date libraries and areas without generated types, so the next maintainers know where to look. User numbers and business figures belong to the client and are not published here.

Tech Stack

Frontend: React 18, TypeScript, Vite, Redux and Apollo Client. Mobile: React Native with Expo. Backend: Node.js, Express and Apollo Server on GraphQL, with MongoDB and Redis. AI uses two large-language-model providers. Maps use Mapbox GL and Turf.js, video uses Remotion and PDFs use React-PDF.

All case studies

Got a similar project?

Tell us about it. The first consultation is free.

Book a call