Trippin'

A map-first travel journal that curates a trip's photos for you — dedupes the bursts, keeps the best frame, and makes the whole library searchable by meaning.

Kind

Photo App

Stack

Deno, Postgres, Mapbox

Status

beta

CAPTURE CURATE MAP / TIMELINE barrier per-photo › trip-wide uploads EXIF GPS · time extract phash · orientation device · golden hour embeddings save to vector db reframe dedup 12 trips · places text › similar MOBILE CAPTURE EXIF GPS & time stamped on every upload AESTHETIC KEEPER a vision score keeps the best frame of a burst RULE-OF-THIRDS CROP focal point drives the reframe, not the center PERCEPTUAL DEDUP clustered by perceptual hash — the "best" are kept SEMANTIC SEARCH find photos by meaning, not filename — pgvector
Fig 4.1 — Capture → curate → map

The Problem

A trip's camera roll is mostly noise. You shoot the same view five times hoping one is sharp, half the frames are blurry or accidental, and afterwards there's no sense of where any of it happened. Culling it by hand is the tedious part nobody does, so the good photos drown. And mainstream photo apps don't help — they optimize for sharing and engagement, not a clean, durable record of your own days.

The good photos drown. Culling is the part nobody does.

The Approach

Trippin' is the successor to FotoLog's map-first journal, with an automatic curation pipeline doing the work you wouldn't:

The trip-wide run is two-phase with a barrier: the per-photo work must reach a terminal state before the single trip-wide dedup pass runs — so deduplication compares fully-scored photos, not half-processed ones. Every step is a small, side-effect-free verb, which means an agent can inspect a photo before deciding to act on it.

And the review model is deliberately conservative: the system flags duplicates and junk but never deletes. You confirm before anything leaves.

The Outcome

A trip curates itself into a map and a timeline you'd actually revisit — the best shot of each moment surfaced, the bursts collapsed, the junk set aside, and the whole library searchable by what's in the photo rather than its filename. Nothing gets thrown away behind your back.

pHash dedup Keeps the sharpest of a burst
pgvector Semantic photo search