Personal project · 2026
Travel Passport: A Decade of TripIt Flights, Rebuilt as a Virtual Passport
Seven tabs, no backend. A flippable customs-stamp passport, a Flighty-style stats page, a flat and spinning-globe world map, a U.S. choropleth, 130+ achievements, a timeline scrubber, and a full log — all from a decade of my TripIt history.
What it is
An interactive virtual passport built from a decade of my TripIt flight history. Click around the tabs at the top:
- Passport — a flippable book with a cover, bio page, and customs-style stamp pages for every visited country and U.S. state. Tap a stamp to see every flight that contributed to it.
- Stats — Flighty-style summary cards: distance & time totals, top airports/airlines/routes, cabin class, aircraft types and specific tails, carbon footprint, region breakdown, time-of-day and day-of-week histograms.
- World — toggleable between a flat Natural Earth map and a 3D rotating orthographic globe. Visited countries are shaded, every route is a great-circle arc, and every visited airport is a dot (top hubs in gold).
- USA — a choropleth of visited U.S. states.
- Achievements — 130+ TravStats-inspired badges across explorer / distance / collector / elite / special categories.
- Timeline — a scrubber that plays the world map and stats forward in time as you drag a month slider, with milestone callouts as they unlock.
- Log — a reverse-chronological feed of every flight.




How it works
One static site, no backend
Every map, stat, achievement, and stamp is computed client-side from a handful of JSON files. No server, no API, no auth. The whole thing deploys to GitHub Pages as a static folder.
Enrichment pipeline
TripIt gives you a flight, an aircraft type code, and a couple of timestamps. A small Python pipeline enriches that into something richer:
- BTS On-Time Performance + FAA Aircraft Registry (both free) — for US-reporting carriers since 2003, this gets us the actual tail number flown and the manufacturer/model/year of that specific aircraft.
- AeroDataBox (paid free tier) — fills in foreign-carrier segments and the most recent flights.
- OurAirports / OpenFlights / world-atlas / us-atlas — the reference data underneath the maps.
The pipeline is rate-limited, caches every response, and stays well within the free tier for everything.
Self-updating via GitHub Actions
A weekly workflow re-fetches my TripIt history, re-runs the enrichments, commits the data changes back to main, and triggers a Pages redeploy. The site is always current without me touching anything.