My Jet Set Life
A travel advisory site with a 3D globe of everywhere I have been, an award flight search, and a trip inquiry flow.
The public face of a side business, a travel advisory under Fora, and an excuse to build something with no compliance constraints. Home, about, an award flight search, a trip inquiry form that emails me and confirms to the traveler, and the globe.
Every place I have actually been, as a pin on a 3D globe. Small dots for places visited, gold stars for places with photos and a story, cream stars for the places that shaped me. Visited countries light up. Tap a pin and a card opens with photos and a blurb while the camera zooms into the region. Six globe styles are switchable with one line, including a live day and night globe whose terminator follows the real sun.
The "Inspire me" button spins with momentum, a hard flick that coasts, decelerates under friction over a few turns, and rolls to a stop on whichever place ends up in front. Grab it mid-spin and it stops under your finger. The physics are time-based so the feel is the same at any frame rate. On phones it draws fewer animated pins, keeps the arcs static, and renders at lower pixel density so it stays smooth.
The first pass only looked at favorites, which is why the best frames never surfaced. The second pass indexed the whole library of 82,304 photos, dropped screenshots, documents, food, other people and home snapshots, collapsed bursts, and clustered the rest by place. That produced 6,549 candidates on 332 contact sheets, reviewed by thirteen parallel agents, then approved and pruned by me. 518 photos made the globe, web-sized with location data stripped.
A form for points balances, programs, dates, and route. Transferable credit card points expand to their partner airlines. A Cloudflare Pages Function queries award availability, keeps price, taxes, and itinerary together per option, pages through results under a deadline, and emails the top options as cards. Inputs are validated before any external call, and the email content is escaped.
Claude Code throughout, with the same habits as the work tools. A written changelog per day of work, a review note handed to a second model before deploying a large patch, and a small test suite for the API functions. This is the project where I learned most of what I now apply at work about specifying, reviewing, and shipping with an AI pair.