Case study
Tupetate
AI travel assistant that builds day-by-day itineraries using Claude, real prices and affiliate monetization.

Context
Classic travel planning tools (Booking, Skyscanner, Kayak) are excellent at booking and terrible at imagining. Searching "what to do in Lisbon for five days, mid-budget, with kids" is still manual work: reading blogs, comparing prices, and assembling the agenda in a note. New AI assistants help with the creative part, but lose touch with reality — prices that aren't real, hotels that no longer exist, flights that don't line up with your departure city.
What I'm building
Tupetate solves that specific corner. The user describes the trip in natural language and Claude produces a day-by-day plan, but before delivering, each piece passes through a validator with real data: flights via Skyscanner, hotels via Booking and Hotellook, alternatives via web search (Brave / Tavily). The output is a coherent itinerary with up-to-date prices and affiliate booking links.
Technical details
- Next.js 15 + React 19 with App Router and server actions.
- Claude API with two profiles: Sonnet 4.6 for fast iteration, Opus 4.7 for heavy planning.
- Web search via Brave and Tavily; affiliation via Travelpayouts (Skyscanner, Booking, Hotellook).
- Auth.js v5 with role-based access (pending / user / beta / admin) and PostgreSQL via Prisma 7.
- Lead-gen model — no booking management on our side; monetization via affiliate links and, soon, premium PDF export.
Status
Closed beta since May 2026 at tupetate.com, with staging at pre.tupetate.com. Invite-only access while we refine prompts, latency and unit economics before opening public signup.