Faunadex is the childhood fantasy of owning a Pokédex, made real. It's a personal field index for actual wildlife: point it at an animal (or upload a photo), and it identifies the species, fills out a collectible dex entry, and logs it to your collection. Every kangaroo, kookaburra and blue-tongue lizard you photograph becomes a card in a database styled lovingly after the classic Pokédex — complete with catalogue numbers, completion tallies and a capture chime.
Scan, identify, log
The identification engine is Claude. Photos are resized and compressed in the browser, then sent to a small Cloudflare Pages Function (identify.js) that wraps the Anthropic API. A carefully structured prompt asks the model to respond with strict JSON — common name, scientific name, biological group, confidence level, a short description, a fun fact, IUCN Red List conservation status, and up to two alternate candidates if it isn't certain. The app parses that response and the dex entry fills itself out.
Misidentifications are part of wildlife spotting, so corrections are first-class: you can pick from the suggested alternates or simply type the right name, and the app re-queries the model to rebuild the entry around the corrected species. Batch scanning lets you clear a camera roll of sightings in one go.
A Pokédex, faithfully translated
The UI is a skeuomorphic love letter to the original device: a red clamshell body, blue lens with specular highlight, blinking LED cluster, pixel typography and a phosphor-green LCD that tallies your logged species. Content scrolls inside a recessed screen, so the whole app reads as hardware you're holding rather than a website you're visiting.
For flair, every animal is assigned a Pokémon type badge. The primary type is seeded from its biological group — birds are Flying, fish are Water, insects are Bug — and the model can award a secondary type only when a real ecological trait earns it: nocturnal animals pick up Dark, venomous species get Poison, desert dwellers run Fire. It's a small system, but it's the detail that makes a real magpie feel like a caught Pokémon.
Regional dexes & the joy of completion
Collections are organised into regional dexes — curated species lists for Australia and beyond — rendered as numbered slots waiting to be filled, silhouettes and all. Photos with embedded GPS data automatically record where a sighting happened, linking each entry to a map location. The result is the compulsive completion loop of the games, pointed at the real world: seeing 'AUS · 112/500' on the LCD is a genuinely effective reason to go outside with a camera.
Offline-first, private, synced
Faunadex is an installable PWA built with no framework — a single HTML file of vanilla JavaScript. Entries live in IndexedDB so the app works fully offline in the field, then sync to Supabase through a single Cloudflare Function that holds the service keys server-side. Multi-user accounts (sign in with your Trainer ID, naturally) keep each collection scoped to its owner, and no API key ever ships to the client.
The project was also an experiment in AI-native development: Claude served as pair programmer during the build and, through the API, became the product itself — the same model that helped write the identification pipeline now runs inside it, naming the animals.