the fly bench.

I was tired of the spreadsheet
I tie flies. Little hook-and-feather lures, tied by hand at a bench, one at a time, to fool a fish into eating. Every fly is a recipe: a specific hook, a specific thread, feathers and fur, tied on in a specific order.
I kept track of my patterns in an Excel spreadsheet. Any time I wanted to tie something, I had to go to Instagram or YouTube or Google to find the recipe, then track down the materials. It was a huge pain in the ass. So I built the resource I wanted and needed for myself.
Too much work, too many words
The Fly Bench is a library of 800+ fly patterns. Each one has the full recipe, a photo, what bug or baitfish it copies, how and when to fish it, a tutorial video, and links to related patterns.

I needed AI to build a system I could put in place, build on top of, and run again every time I wanted to add more recipes. Point it at a tutorial page, one agent reads the page and pulls the recipe, then a batch of agents, five at a time, each take a pattern and write a structured file to the house template.
A tyer wants to buy the exact hook, thread, and hackle, but the lists were freeform text. “UTC 140,” “140 denier,” “Ultra Thread 140,” all the same thread. I ran a swarm of agents at once, each folding a batch of raw material names into one canonical dictionary, then a normal program to match every material to a shop.
I also ran an Opus agent as a code reviewer over the pipeline, cold. It caught an import script that, run the documented way, would have wiped all 800+ patterns.
The Next.js version didn't hold up
I launched it as a Next.js app, and it wasn’t great. Login code ran on every pattern page, so every visit and every bot crawl called a server function. Pages also refreshed themselves every hour, about 640,000 function calls a month, five times my hosting plan’s limit.
So I rebuilt it in Astro as a static site, every page pre-rendered to HTML, and moved the admin tools into a separate app that only runs on my machine. It’s fast, and I’m not paying every month to run a site that’s mostly for me. If somebody finds it, great.

Nobody was finding it
As I paid more attention and added more, I noticed people weren’t finding it. I went back through the content pipeline and added new sections to every pattern: how the natural bug behaves, where trout eat it, how to rig and fish it, when in the season, and the entomology behind it.




Bing had sent about 1,130 visits. Google had sent 9, and had indexed 505 pages while skipping 803. The pages pointed Google at addresses that redirected, and more than 550 patterns had no link anywhere on the site, because category pages only loaded the rest as you scrolled. I fixed both, and corrected 307 patterns whose recipe, labels, or description didn’t match the source.
Where do I go fish this?
As traffic came in, I wanted to give visitors more than a recipe. A pattern page told you how to tie the fly, what it imitates, and how it’s supposed to be fished. It didn’t tell you where to go fish it. And if I’m standing at a river, what should I put in my fly box, what should I tie, where do I buy it?
I’d already built River & Run, a directory of fly shops. Now 400+ patterns link to the rivers they fish on River & Run, with the fly shops near each one, and that grows every week. It works the other way too: a River & Run river page shows the patterns from The Fly Bench for that water. If you’d rather buy the fly than tie it, 500+ patterns link to a shop that sells it.
The Fly Bench is live at theflybench.com, 800+ fly-tying patterns with a photo and full recipe on every one, free to read, nothing to log into.