← All workCase 1 of 4
Case 01PASSION PROJECT · LIVE AT RIVERLINE.APP

Predicting the hatch before it happens

Predictive AI that scores fishing conditions by comparing live USGS flows, water temp, snowpack and weather against years of historical hatch and fly shop data, for 16 rivers across Montana, Idaho, Wyoming and Canada.

RoleSolo passion project
StackClaude Code, React, Cloudflare, Supabase, Groq AI
StatusLive
Read4 min
Riverline river page on desktop and phone with live gauges, fishability score and AI prediction
Bitterroot River page with the Riverline Guide chat open
AI condition prediction for the Bitterroot River next to fly patterns to throw
Trip planner ranking all 16 rivers for November 9 to 11
River detail with seasonal estimate, hatches and fly patterns for trip dates
1 / 5 · Riverline on desktop and phone
Step 01 / 05
Use case

The user moment

It's Tuesday night and you're going on a 3-day trip to a river you've never fished on Saturday. You check the fly shop report, the USGS gauge, water temp, the weather, and a forum post from 2019. None agree, all the information is fragmented and relative, and none can tell you what to really expect.

Step 02 / 05
Problem

The problem

The information exists, but it's scattered across 8 fly shop reports, USGS streamflow, this year's snowpack, historic reports, hatch timing, water temp and old forums. And all of it is relative. You feel it most when scouting new water you're excited to fish, or planning months ahead, when today's report doesn't help.

USGS flowsWater tempsSnowpackWeather forecastHistoric fly shop reportsHistoric hatch timingTHE ENGINEAI ingestion + prediction01Clean + combine 6 sources02Match to similar snow years03Rank flies, 3 AI judges checkTHE ANSWERFly picks + conditionsfor the date you're going,up to 3+ months outLIVE DATAHISTORIC DATA
Step 03 / 05
Validated

How I validated it

I'm the userI fish the Bitterroot and the Missouri, and talked the idea through with 10+ close friends who fly fish before I built it. I used it myself before trusting anyone else to.
Field test5+ rivers this summer. On the Elk River in Fernie it called the elevated flows and the hatch.
Expert checkA fly fishing guide and a lifelong angler said the picks matched what they'd recommend.
Step 04 / 05
Decided

Decisions I made

What I left out matters as much as what I built.

ConsideredMaps and float planning
ChoseLeave them out
onX and TroutRoutes do maps and float planning well. My edge is the forecast.
ConsideredToday's conditions only
ChoseForecasts 3+ months out
Trips get planned weeks ahead.
ConsideredEvery river everywhere
ChoseThe rivers I know best
I can verify every answer myself.
ConsideredTrust the AI's fly data
Chose3 AI judges, 3 retries, then me
Bad recommendations, wrong fly names and inaccuracies kill trust fast. 98% of 500+ flies came out correct.
Under the hood

How it's built

Rules do the scoring. AI explains it.

1
CollectLive feeds

USGS and Environment Canada flows, snowpack and weather, refreshed on a schedule by background jobs on Cloudflare.

2
Rebuild historyWeb archive + AI

Fly shops overwrite their reports weekly, so I recovered the history from web archive snapshots: 2,154 structured reports. Low-confidence or unattributed ones were dropped, not guessed.

3
ScoreRules, not AI

Fishability, hatch timing (adjusted for this year's degree-days) and river rankings are deterministic logic, so they can be tested. 648 automated tests.

4
Explaingpt-oss-120b on Groq

Writes the daily river brief and answers guide chat from the report archive. Responses are cached for 6 hours, so AI cost stays flat as traffic grows.

5
ShipCloudflare, Supabase, Stripe

React app on Cloudflare, accounts and data in Supabase, freemium premium tier through Stripe.

About 66K lines of code, built solo with Claude Code in 12 weeks (May 30 to Aug 20, 2026).
Step 05 / 05
Measured

How I measured it

Are the picks right?>90%accurate across 5+ rivers this summer
Do I use it myself?20+days on the water using it this summer
Can I trust the fly data?3AI judges must hit 90% approval on every fly pattern, with 3 retries, then human review
What I'd change

I built this to solve a problem I felt on the water and heard from the anglers closest to me. Because I loved the build and learning the tech, I kept adding features. Next time I'd narrow to the few that actually change a trip decision and launch with only those.