A local-first travel photo mapping app. Runs entirely in your browser, no account needed.
-
Download the repository (git clone it).
-
Launch the server (requires Python 3):
python3 serve.py
or
./start.command
On first run,
serve.pydownloads vendor dependencies intovendor/. Your browser will open automatically at http://localhost:8765 -
Add photos — drag & drop JPEG/HEIC files (with GPS data) onto the upload zone.
| Feature | Detail |
|---|---|
| 📍 Auto-pin | GPS EXIF read — no manual coordinates needed |
| 🔎 Destination search | Search any place or paste GPS coordinates |
| 🖱 Right-click pin | Right-click the map to pin a location |
| 🏳 Countries visited | Flag emojis for every country you've visited |
| 📁 Albums | Named albums with optional date ranges |
| 🗓 Timeline | Chronological photo browser |
| 🖼 Lightbox | Full-size viewer with navigation and camera info |
| 📝 Notes | Add notes to any pin |
| 🛰 Map styles | Light, Bright, Dark, Terrain, 3D Terrain, Satellite, Globe |
| 🔄 Clustering | Pins cluster by zoom, expand on click |
| 💾 Auto-save | Background backup to disk via serve.py |
| 📦 Export / Import | Full dataset as compressed .json.gz |
| 🎬 Video export | Trip animation as WebM video (VP9) |
| 📡 Offline mode | Browse photos and cached tiles without internet |
- Data persistence & migration
- Data storage internals
- Tile caching architecture
- Keyboard shortcuts
- Tips & features
- Architecture
- Testing
- Demo modes
Built with Claude Code using Claude Opus 4.6




