TravelBee My portfolio

Gary (Yongyuan) LiIndependent product builder · 2026

A group trip,
in one place.

Shared itineraries, routes, and multi-currency expenses keep group trips together.

View product tour
Actual trip view · September 2026Select the image to enlarge
6travelers used the app
275expense entries logged
17cities in the itinerary

Built independently during my career break.
Used on a real group trip.
Developed with Claude and Codex.

Tools behind the product.

Follow a trip from finding a stop to sharing the plan. Each tool supports a different part of the traveler’s workflow.

  1. Find the stop

    Mapbox

    Suggests places, turns addresses into map coordinates, and maps routes between stops.

  2. Check the weather

    Open-Meteo

    Shows location forecasts when an itinerary date is within the forecast window.

  3. Capture the booking

    Claude API

    Extracts booking and expense details from images so travelers can review the fields before saving.

  4. Keep the group in sync

    Supabase

    Stores trip data and images, and syncs updates across travelers.

My role,
from idea to use.

I owned problem definition, prioritization, UX, implementation, and testing.

Built for six travelers on a real trip. My key decision: extract booking details into an editable form, keeping the traveler in control of saving.

Read the decision and tradeoff

Three jobs. One trip.

Choose a module to explore an illustrative example and the traveler need behind it.

Different currencies.
A common view of spend.

Keep expenses with trip items, in their original currencies and USD.

See who paid and adjust exchange rates.

The scope decision

Track spending and who paid. Leave debt settlement outside the product.

Illustrative example: not trip data
Total in USD$40.003 expenses, converted using example rates
Coffee Original amountUSD 10.00
Museum 7 CNY = 1 USDCNY 140.00 USD 20.00
Lunch 150 JPY = 1 USDJPY 1,500 USD 10.00

Original currencies preserved. One view of total spend.

Illustrative amounts and exchange rates, not personal spending.
275 expense entries logged in the app.

A booking image becomes an editable event.

Claude fills booking details into an editable form: reservation dates, times, confirmations, and addresses, or flight times, numbers, and seats. Review before saving.

Illustrative example: fictional booking details

Start with a reservation image

Reservation confirmationSample restaurant

Sunday, September 13, 2026
7:00 PM · 6 guests

Confirmation
SAMPLE-42
Address
1 Example Lane, Tokyo
Fictional address

A simplified representation of a booking screenshot.

Review the extracted details

Change a field, then save the sample event.

Event title, date, and time are required. Other fields are optional.

This is a demonstration of the review step, not live AI extraction. Edits stay in this demo.

View the actual photo-upload screen
Actual upload interface. The example above explains what happens after selecting an image.

Weather, near the trip date.

Forecasts appear alongside locations when the trip falls within the forecast window.

Separate weather example: 151 3rd Street, cloudy, 18 to 12 degrees Celsius, 1 percent chance of rain.
Separate supplied example; the completed September trip has no forecast.

The decision: reduce event-entry work.

The friction

Booking dates, times, addresses, and confirmation details had to be copied into each event.

What I changed

Claude matches details from booking images to event fields, ready to check and correct.

The tradeoff

Faster entry still needs review. The traveler decides what gets saved.

Reported event-creation time

Manual entry1–2 min
With photo extraction<30 sec

Timing reported by me from project use, not a controlled benchmark.

Other choices that kept the scope practical

Keep context with the event.

Location, notes, and expenses live together, so purchases remain connected to the plan.

Build for a trusted group.

A shared link avoids account setup for six travelers, with access control as an explicit tradeoff.

Make mistakes recoverable.

Recently deleted items can be restored when someone removes a shared item by accident.

What I would measure next

Next: field corrections, time to save across booking types, and repeat use. Evidence comes from a small group; broader reliability remains unmeasured.

A trip across 17 cities.

The itinerary spans Mainland China, Hong Kong, Japan, and Taiwan. Select a city to explore its geographic location.

Explore the 17-city mapCity locations and regional filters

Loading the city map…

17 cities · Select a city to zoom in

Approximate city centers, not exact venues or a travel route. Cities from my group itinerary. Coordinates: GeoNames (CC BY 4.0). Basemap: © OpenStreetMap contributors.

Gary (Yongyuan) Li

I built TravelBee end to end during my career break. Explore my portfolio for more about my work.

My portfolio
100%
TravelBee trip calendar