Portfolio
What We Built. What It Replaced. What Changed.
A selection of systems we have built — what we replaced, what we delivered, and what changed after launch. Client work ships with the same rigor as our internal builds.

Active project
Fishing with Friends


↺ Click the card to cycle projects
No unified tool existed for recreational anglers to log GPS-tagged catches, compete in live tournaments, and stay connected in low-signal maritime environments on a single app. Fishing with Friends is that app — built in Flutter with Supabase, PostGIS, and Riverpod for iOS and Android. The offline-first architecture means catches log when you're on the water and sync automatically when connectivity returns. No data lost on the boat.
- Offline-First Architecture: SQLite outbox pattern for low-signal maritime environments — catches log on the water and sync automatically when connectivity returns.
- Real-Time Tournaments: Competitive leaderboards powered by Supabase Realtime; scores update live without page refresh.
- Catch Logging: GPS-tagged catch entries with photo capture and species metadata, surfaced in a friend-scoped activity feed.
- Geospatial Data: Catch locations stored in PostGIS for location-based queries and regional catch heatmaps.
- Cross-Platform: Single Flutter codebase targeting iOS and Android — App Store and Google Play deployment.