Pawsport
A cat photo journal for iPhone and Android. Every cat you photograph becomes a stamp on a shared map.
- For
- Our own app
- When
- 2025–2026
- Status
- Live on the App Store and Google Play.

The situation
Gina and I travel when we can, and we stop for every cat we meet along the way. We have five at home. Gina once packed a bag of cat treats all the way to Italy to hand out. Pawsport started as a way to keep track of all of them.
What I built, and why
Snap a cat and it becomes a geotagged stamp, lifted out of its background and dropped on a Mapbox map with a heat layer showing how far your collection reaches, with stats by country, state and region. Achievements, streaks and reactions are there to bring people back.
Guest mode lets anyone collect up to five stamps without an account and link one later. Purrfect Pro comes monthly, yearly or as a one-time lifetime purchase, and 10% of every subscription goes to cat shelters and rescues.
Why I did it this way
A shared map, which means a moderation queue
The map is one map. A stamp is visible to everyone once it’s approved, which turns a cat photo app into a public photo feed, so moderation had to ship on day one. Stamps carry a status, the map shows approved stamps plus your own, and an admin portal is where they get triaged.
Coordinates that can’t be precise
The app rounds a location to about a kilometer before it uploads, and the database columns are sized so they’d truncate anything finer even if a client sent it. I didn’t want Pawsport to publish a stranger’s address next to their cat.
Guest accounts, and where the limit is enforced
Anonymous sign-in gets someone to their first stamp with no email, and linking an account later carries the stamps over. The guest limit lives in the database, because an anonymous session can talk to the database directly.
Achievements awarded by the database
A database trigger awards badges when a stamp is saved, so a modified app can’t grant one and a crash mid-save can’t lose one. The trigger swallows its own failures, because a broken achievement rule should never cost someone the photo they just took.
Cutting the cat out of the photo
Lifting the cat out of its background is what makes a map of thirty pins read as a map of thirty cats. It uses the phone’s own subject detection, so it runs on the device with no per-photo bill. On iPhones older than iOS 17 the stamp keeps the photo as shot.
What changed
Pawsport shipped in about two months and is live on the App Store and Google Play. The map turned out to be the feature people come back for; they spend more time there than anywhere else in the app.
The map
Where the cats are.
Every dot is a cat someone stamped in Pawsport. 257 cats so far, across 31 countries. Pick a continent or a country to zoom in.
- Cats stamped
- 257
- Countries
- 31
- Continents
- 6
- States and regions
- 114
- People collecting
- 61
Bigger dot, more cats in that spot
By country
- The two cats farthest apart are about 19,000 km from each other, one in Australia and one in the United States. That is close to opposite sides of the planet.
- Northernmost cat: Greenland, around 68.8°N.
- Southernmost cat: Australia, around 42.9°S.
Dots are rounded to about 11 km and merged when they share a spot, which is coarser than the app itself. Nobody’s street is on this map.
Numbers as of September 20, 2026.
Add a cat of your ownBuilt with
- React Native
- Expo
- TypeScript
- Supabase
- Mapbox
- RevenueCat
- NativeWind
- PostHog
- Crisp

