Lifer is a birding companion I built to answer one question in the field: which birds are here, which do I still need, and where should I walk next? It folds real-time eBird observations, hotspot mapping, a personal life list, and a yearly recap into a single map-first interface — on desktop and in your pocket.

Birders juggle a patchwork — eBird for sightings, Google Maps for directions, a spreadsheet for the life list, Macaulay for photos, and memory for the rest. Lifer collapses that into a single map-first loop you can act on in the moment.
The nearby view shows what's been reported at surrounding hotspots, color-coded by whether each bird is a lifer, a year bird, or already on your list.
DeepBird flips the workflow — pick a species and see where it's been seen recently, filtered by region, radius, or the current map viewport.
Upload an eBird CSV and life-list and year-list state is derived automatically, with XP levels, badges, world maps, and a nemesis tracker.
Custom map tiles, proximity-based decluttering, and photo-mosaic hotspot clusters keep the map readable from a Central Park bench to a mountaintop in northern Thailand.

Central Park hotspots, photo clusters, lifer & year-list badges.

Photo-mosaic clusters across Cambridge, Somerville, downtown.

8 lifers available across the arrondissements.

Doi Inthanon — 249 species, 54 lifers on satellite terrain.

On desktop, the map pairs with a sidebar species list and a full filter panel.
A yearly recap built for reflection and sharing — species and checklist totals, the rhythms of when you bird, and your rarest finds, all designed to scroll vertically and screenshot well.

584 species across 9 countries in 225 hours afield.

Hourly, monthly, and weekday rhythms — golden-hour birder, winter peak.

Top finds ranked by global rarity, with the species you logged most.

Lifer was built end-to-end through an AI-native workflow — roughly 2,000 prompts across Codex, Claude Code, and Lovable over two months of active work. The decisions spanned product design, map rendering, an eBird proxy with retry and caching, a Supabase data pipeline, and localization into eight languages.
Working solo meant owning every tradeoff: the offline-first constraint shaped the caching strategy, which shaped the data model, which shaped the UI. It's both a real product birders use daily and a case study in what deep domain knowledge plus AI-assisted development can ship.