A React Native iOS & Android beta built on the data pipeline you and your brother already started, with the three-tier subscription system wired up so paid users can convert as soon as you're ready.
The prototype, the schema, the USGS + NOAA ingestions, the auth scaffold, and the scoring logic in Apps Script all already exist. V1 ports the scoring to TypeScript with seasonal threshold profiles and SNOTEL snowpack data, wraps the screens in a real native app, ships the full Pro+ surface — AI chat agent backed by a pgvector knowledge base, AI condition-insights layer, full trips planner, Stripe billing, threshold push alerts — and lands the app in the public App Store and Play Store well ahead of the January 2027 trade-show circuit.
A native iOS + Android app built in React Native & Expo from a single codebase — every screen in your prototype, hooked to live data.
The scoring engine ported from Apps Script to TypeScript, with seasonal threshold profiles (4 ranges per gauge — spring/summer/fall/winter) so a stream 30% above median in March (snowmelt) doesn't read the same as 30% above median in August (storm runoff). Validation layer protects user trust.
USGS + NOAA pipeline carried forward, plus NRCS SNOTEL snowpack data integrated for the Mountain West — Colorado, Montana, Wyoming users see real freshet-aware scoring at launch. Historic gauge + weather retention powers the day-log snapshot feature.
A three-tier Stripe subscription system (Free / Premium / Pro+) wired end-to-end with feature-gated overlays, so the app is monetization-ready on day one of public launch.
A full Pro+ AI surface: knowledge-base-backed trip-planner chat (pgvector + hybrid retrieval over your river writeups), an AI condition-insights layer that synthesizes across signals on top of the rule-based IQ panes, and an AI auto-onboard agent for new streams. Per-user spend caps and graceful fallback to rules if AI fails.
The complete product — Pro+ AI chat agent backed by a real knowledge base, AI condition-insights layer over the rule-based IQ panes, seasonal threshold profiles, SNOTEL snowpack-aware scoring for the Mountain West, full trips planner, Stripe billing, and public App Store + Play Store release — well before your trade-show circuit kicks off in January 2027.
A purposefully scoped V1: the screens an angler needs to use the app every day, the billing rails to monetize them, and the smallest AI surface that actually moves the needle. AI chat, the full trips planner, and public-store release are deferred to follow-on phases — quoted separately so you only commit to what you actually want next.
Six tightly-scoped components, each independently deliverable.
V1 ships the full Pro+ surface — AI chat, full trips planner, Stripe billing, public App Store + Play Store release. The only thing intentionally deferred is the social layer, which is its own design problem and deserves a dedicated engagement once V1 has real users.
Strava-style friend feed, public / private profiles, year-in-review montage video, leaderboards (longest fish, most days, etc.), and AI catch-image verification for honor-system-resistant PRs.
Why V2: Out of V1 scope per our call. The user model in V1 is architected so this can be a clean addition later rather than a rewrite. Best built once V1 has real anglers using it and we can see what social features they actually want.
Sequenced so the app runs on your phone by end of Week 3, the engagement layer (logbook, push, AI auto-onboard, full trips planner, knowledge-base infrastructure) lands by Week 6, and the Pro+ AI chat, condition-insights layer, billing, and public store release wrap by Week 10. I work full-time on one project at a time. There won't be a week where I'm "getting back to it."
Get the DigitalOcean droplet provisioned, the React Native repo scaffolded from your prototype, auth carried forward from your brother's work, CI/CD wired up so every merge to main builds to TestFlight and Play internal, and Sentry error logging instrumented across mobile and backend so you see real-world crashes the moment they happen.
Port the existing Apps Script scoring pipeline to typed, ordered TypeScript. Add seasonal threshold profiles (4 ranges per gauge) so March snowmelt and August storm runoff don't read the same. Stand up NRCS SNOTEL ingestion and wire snowpack-aware adjustments into the scorer. Verify USGS + NOAA ingestions are running clean and turn on historic retention.
List, detail, map, thresholds, weather, favorites — all hooked to the live scoring engine and ingestion pipeline. By end of Week 3, you'll be using a TestFlight build of the app on your phone for real conditions checks.
Day-log, logbook, AI auto-onboard, push notifications, and the full trips planner. Plus the knowledge-base infrastructure stood up on pgvector — schema, ingestion pipeline, hybrid retrieval, and chat UI shell — so you can start writing river content during this phase and have a substantial corpus by public launch.
Pro+ trip-planner chat agent reading from the pgvector knowledge base you've been seeding since Week 4, the AI condition-insights layer rendered under the rule-based IQ panes, Stripe subscriptions wired across three tiers with feature-gated overlays, App Store + Play Store listings prepared and submitted for public review, and a polish pass against the field-testing fixes from Weeks 4–6.
Below is the total V1 investment, broken down by milestone and tied to deliverables. Infrastructure, store fees, and AI API costs are paid by you directly — nothing flows through me.
Includes foundation, scoring engine port with seasonal profiles + SNOTEL, core mobile app, full engagement layer + trips planner, knowledge-base infrastructure on pgvector, Pro+ AI chat, AI condition-insights layer, Stripe subscriptions, and public App Store + Play Store release. Ten-week engagement, fixed price, no hourly clock-watching.
A few things worth calling out about the choices made here — and the choices deliberately not made.
Schema, ingestions, auth scaffold, scoring logic — they're already done or in flight. V1 is finishing what's there and putting a real app on top, not starting over from zero.
Anglers walking up to your trade-show booth see the complete product — Pro+ AI chat, full trips planner, Stripe billing, public App Store release — not a stripped-down preview. The version anglers download is the version that converts to paid, not a teaser of one.
React Native means we don't build twice and we don't maintain two languages. One merge to main ships to TestFlight and Play internal, automatically. iOS and Android stay in lock-step from day one.
Ten weeks of build + months of public-soft-launch tuning before January means we're not shipping a rushed product to your booth. By the time the trade-show circuit kicks off, the app has been through real anglers' hands, the Mountain West users have validated the seasonal/SNOTEL story, and your river writeups have seeded a substantial AI knowledge base.
When you're ready for Strava-style friend feeds, leaderboards, and year-in-review montages, V2 has a defined scope and gets a separate engagement — not scope creep mid-build. The V1 user model is architected so V2 layers on cleanly.
DigitalOcean keeps your monthly bill predictable instead of nickel-and-diming across Vercel + Supabase + Pinecone. One droplet, one bill — and when you scale beyond V1, the same droplet handles it well past your first thousand users.
The operating rhythm for the engagement, in five lines.
Most are administrative. The longest one is probably setting up the Apple Developer team — Apple's onboarding can take a few days, so we kick that off in Week 1 in parallel with infrastructure.
Either yours or one I create on your behalf and transfer over. ~$10–20/mo for V1 beta scale.
Invite to your existing monorepo plus a new repo for the React Native mobile codebase.
$99/yr Apple Developer Program enrollment for TestFlight distribution. Started Week 1.
$25 one-time Google Play Console account for Play internal-track distribution.
For the subscription gateway — set up by Week 6 ahead of the Wks 7–10 billing milestone.
Free Developer plan is fine for V1. I wire it up in Week 1.
Once we sign — to walk through accounts, GitHub access, and lock in the Week 1 plan.
This proposal is valid for 30 days. Reply on Upwork with any feedback, then accept the milestone offer and we'll have a kickoff call inside 24 hours — Week 1 starts the same week.