Blue Wing Olive
A TestFlight iOS fishing logbook with Apple Sign-In, catch photos, geodata, weather enrichment, and an OTA release loop.
Problem
Fishing notes are easiest to capture on the water, but a useful logbook still needs photos, location, weather context, remote backup, and fast iteration after shipping.
Approach
I built Blue Wing Olive as a real mobile product: Expo app, Next.js API, shared packages, production auth, storage, and CI-driven EAS Update releases.
Outcome
The v1.0 app is shipped on TestFlight with device UAT complete, and the next milestone extends the map with stream overlays from Fishing Intelligence Agent.
Highlights
- Expo/React Native app backed by a Next.js API and shared auth/db/type packages.
- Apple Sign-In, server-side allowlist, ordered image uploads, and Open-Meteo weather enrichment.
- Pushes that touch the mobile app can publish OTA updates through EAS Update.
Mobile Product Surface
The iPhone app is the primary product, not a companion to a web dashboard. The shipped flow covers sign in, catch creation, photos, flies and lures, map markers, catch detail, editing, deletion, and pagination.
Weather is enriched server-side on catch creation so logged catches carry useful context without making the mobile client own that integration.
Monorepo Boundary
The repo is organized as a Turborepo with `apps/mobile`, `apps/api`, and shared auth, database, and type packages. That keeps mobile and backend contracts close while still letting each surface build independently.
Release Loop
EAS Update is wired into CI so JavaScript changes can reach TestFlight users without a full native rebuild. That was an intentional part of making the solo product viable to keep improving.