Tiago Antunes — Portfolio

Tripr

--role="Co-founder & Engineer"

Rails 8 Hotwire Tailwind PostgreSQL RubyLLM (Gemini 3.1 DeepSeek V4 GPT-5 Mini) Apify Solid Queue Cloudflare R2 Kamal
Tripr — hotel map picker

cat README.md

AI-powered travel itinerary builder. A multi-model LLM pipeline generates, fact-checks, and ranks attractions, then a constraint-based scheduler packs them into day timelines respecting meal windows, travel time, and capacity budgets.

cat features.txt

• Each step of the pipeline routed to a different model: Gemini 3.1 Pro writes the suggestions, DeepSeek V4 Pro checks them as a deliberately sceptical fact-checker, GPT-5 Mini ranks them in batches, and a cheap Gemini model rewrites the descriptions
• The generation and ranking steps are forced to answer in a fixed shape, so a malformed or invented result can't reach the user; the fact-checker retries a bounded number of times instead
• Day scheduler that respects meal windows (a hard cut-off for lunch, a set dinner start), the travel time between two points, and how much a single day can realistically hold
• When a day won't fit, it anchors the plan on the strongest attraction, widens its search radius step by step, then rebalances and retries before dropping anything
• Pluggable data sources — Agoda files, Google Places via Apify, and direct partner feeds — each behind a common interface
• Failures are recorded per source, so one bad provider finishes the run with errors noted instead of killing it
• Trips can be built without an account and later claimed by one, keeping the same record and its share link
• Photos stored on Cloudflare R2

cat outcomes.log

Multi-model LLM orchestration where each step is routed to the cheapest model that can do it, backed by a real constraint solver and a pluggable ingestion layer. ~38k lines of Ruby, ~1,950 test examples.

ls screenshots/

6 files · click to enlarge

› itinerary map
› restaurant picker
› place detail
› day scheduler
› trip constraints
› swipe onboarding