A guessing game built from your own camera roll. Each round shows you one of your photos — guess where it was taken on a world map and when it was taken. The closer you get, the more points you score.
Old photos make the best rounds. Play solo to test your memory, or pass your phone around and let everyone argue about which summer that actually was.
📱 Coming soon to the App Store. Runs on the web today, and as a native iOS app via Capacitor.
Everything runs on your device. Your photos are never uploaded anywhere — the app reads the GPS location and capture date that your camera wrote into each photo, locally. Only two things touch the network:
- Map tiles (CARTO / OpenStreetMap), like any map app.
- Optional place-name lookups (OpenStreetMap Nominatim) — coordinates only, never your photos, and fully toggleable in Settings.
No accounts, no servers, no analytics, no tracking. See PRIVACY.md.
- Pick an album or your whole library — Photographic finds the photos that carry location info.
- Study each photo for clues: the scenery, the season, the people.
- Drop a pin on the map and dial in the year (and month, if you're brave).
- See the reveal — how far off you were, in distance and in time.
- After the last round, explore a map of every guess from your game.
Each round is worth up to 10,000 points — 5,000 for the place, 5,000 for the date — with exponential falloff based on how far off you are. The falloff adapts to your library: photos from one city are judged on a much tighter distance curve than a globe-trotting archive, and likewise for the span of years your photos cover. Skipping a round, or no pin when the timer runs out, scores zero.
Open Settings (the gear in the header, also available mid-game) — choices persist between visits:
- Rounds: 5 / 10 / 20 / all playable photos
- Time per round: 30 s / 60 s / 2 min / Zen (no limit) — changes apply from the next round
- Distances: kilometres or miles
- Place names: reverse-geocode the reveal via OpenStreetMap (off = fully offline except tiles)
- Month is optional when dating a photo — without one you're scored from mid-year.
npm install
npm run devOpen http://localhost:5173 and drop in photos (or a whole folder). JPEG/PNG/WebP work everywhere; HEIC/HEIF from iPhones is converted on the fly. Photos without embedded GPS or a capture date are skipped (you'll see counts).
npm run build # typecheck + production build
npm run preview # serve the production buildThe native app wraps the web build with Capacitor
and reads the photo library in place via PhotoKit (PHAsset exposes location
and creationDate). After a web build, sync and open Xcode:
npm run build
npx cap sync ios
npx cap open iosVite · React 18 · TypeScript · Tailwind (liquid-glass design system) · zustand · Leaflet + react-leaflet · exifr · heic2any (lazy-loaded) · Capacitor (iOS)
Issues and pull requests are welcome. If you hit a bug or have an idea, open an issue with a bit of detail on what you expected and what happened.
Questions or feedback? Email nmarg18@gmail.com or open an issue.




