Inspiration
Birding life-lists are useful records, but they rarely capture the small thrill of recognizing a bird and adding it to your personal world. I wanted to combine a practical private sighting log with the delight of a retro handheld collection—without turning real wildlife into a competitive social feed.
What it does
FieldDex is a SwiftUI birding life-list presented as a playful handheld field device. Birders can record sightings locally, import existing CSV lists, browse a bundled BirdDex, unlock species by logging them, and revisit observations through a tactile capture animation. A forgiving importer understands common eBird-style fields and skips exact duplicates so the same list can be imported safely.
The complete collection loop works without an API key. Optional read-only integrations can show nearby eBird observations, iNaturalist reference photographs, and attributed xeno-canto calls. Sightings remain local in SwiftData.
The eligible Build Week extension refines the device interface, substantially expands the bundled catalog and icon mapping, implements the complete BirdDex capture/unlock flow with reduced-motion behavior, and adds the import tooling and integration work needed to connect sightings to collecting. The earlier app shell, local sighting model, and service boundary are documented as the baseline.
How I built it
FieldDex uses SwiftUI, SwiftData, a bundled JSON catalog and asset catalog, local CSV parsing, and optional read-only reference APIs. The submission repository includes a judge sample CSV and builds without credentials.
I directed the birding workflow, collection mechanics, retro-device identity, and visual decisions. Codex with GPT-5.6 implemented the capture flow, catalog expansion, import tooling, matching logic, reduced-motion behavior, build fixes, and verification. The repository preserves dated evidence of the Build Week extension while excluding oversized editable UI masters and raw import sources that are unnecessary at runtime.
Challenges
The main challenge was joining two mental models—a trustworthy sighting record and a playful collectible index—without making either feel bolted on. Catalog matching must tolerate real-world names while avoiding false unlocks, CSV imports must be forgiving but idempotent, and a celebratory capture animation still needs an accessible reduced-motion path.
Accomplishments
The Build Week extension turns the app into a coherent loop: observe, record, capture, unlock, and revisit. Judges can test the full path offline with the bundled catalog and sample CSV, then import the same file again to verify duplicate handling.
What I learned
Codex was valuable for carrying a playful product idea through data, import, matching, animation, assets, accessibility, and build integration. Clear boundaries around pre-existing work also made the extension easier to explain and verify.
What’s next
Next I would integrate an experimental audio bird identifier so birders could record a call, receive likely species suggestions, compare them with attributed reference audio, and confirm the identification themselves. Suggestions would never automatically create a sighting or unlock a BirdDex entry. I would also expand accessibility testing, enrich local field notes, and establish a formal rights and provenance pipeline for every bundled or streamed asset.


Log in or sign up for Devpost to join the conversation.