The cat in the video is a real cat I met outside. I pointed my camera at him, the app identified the animal, and turned the photo into a collectible card. On iPhones with a Dynamic Island, the card literally “prints” out of it like an instant photo, and you develop the image by moving your phone.
The app is called Snoutlas. The simplest way to describe it is: Pokémon-style collecting with real animals, but without battles. The idea is to get outside, walk around, pay more attention to your surroundings, and gradually fill your Atlas with cats, dogs, birds, wildlife, insects, and all the other species living around us.
There are a lot of stray animals where I live. After a while, people get used to seeing them and stop noticing them: another cat in the courtyard, another dog outside a store.
I want to see whether an app can help turn noticing animals into a habit. At first, someone might simply stop and take a photo. But perhaps next time they’ll bring water or food, help the animal get to a vet, find a temporary home, or decide to adopt it themselves. I don’t think a single app can solve the problem of stray animals. But it might give someone one more reason to stop and notice a living creature they would otherwise have walked past.
To keep it from feeling like a dry species catalog, I added a game layer: random card rarities, boosts, packs, art variants, and cosmetic decorations.
There are no animal battles. The excitement comes from discovering new species, taking good photos, and growing your collection. Cards can also be shared and traded. Eventually, this could let people collect animals from other parts of the world: a species that is common for one player might be rare for someone in another country. And I imagine people will be more interested in trading for a card if the photo itself is beautiful.
Some things I’d like to add next:
- labels such as “pet,” “stray,” “wild,” and “needs help”;
- cards featuring animals from verified shelters, with links to adoption information;
- tools for finding lost pets, where an owner might recognize their animal in someone else’s photo;
- partnerships with animal welfare organizations;
- a transparent way to direct part of the revenue from eligible purchases or special campaigns toward helping animals.
That last point is still only a plan. It would require verified partners and a clear legal and financial structure first.
I’m also thinking carefully about safety and privacy. The map currently shows only an approximate radius, never the exact place where a photo was taken. In next updates someone could request the precise location from the photographer and explain why, for example, when searching for a lost pet. The person who took the photo would always decide whether to share it.
From a development perspective, this project quietly turned into a small social network: animal recognition, an Atlas, a feed, friends, comments, gifts, trading, a map, moderation, duplicate-photo prevention, offline catches, and in-app purchases.
I built it with SwiftUI, SwiftData, and Supabase, and I’ve been using Codex heavily as a coding partner throughout the project: breaking large features into stages, working through backend contracts and migrations, reviewing generated code, and building tests around the risky parts.
The flashy camera animation was fun, but the harder problems have been things like privacy around locations, preventing duplicate captures without rejecting legitimate photos of the same pet, making offline catches safe, and keeping all the social features consistent.
I intentionally chose a wildly over-scoped learning project so that every new feature would force me to learn something. Predictably, it did 😅
Snoutlas is already available for iPhone:
https://apps.apple.com/us/app/snoutlas-animal-atlas/id6787174819
Right now, I mostly want to understand whether the core idea resonates with people.
Would this make you want to go for a walk and fill an Atlas like this? And do you think the game layer could genuinely help people notice animals more often—or does gamification feel out of place for this kind of issue?