Busch
Fishing
A fishing cheat sheet for Busch Conservation Area that says what's biting, which lake to try and what to throw, based on today's weather.
DETAIL B — SHOWN IN THE PROJECT'S OWN FINISH
- Cloudflare Worker
- Static assets
- Vanilla JS
- Leaflet
- Open-Meteo
- OpenStreetMap
- No API keys
SECTION C–C · SCOPE
Busch Conservation Area has dozens of numbered lakes, and the state's annual fishing report covers which species are in which lake. Standing at the water with a tackle box, though, the question is simpler: what should we throw, and where?
The page answers that in plain English. It starts with a seasonal guess from the month and the time of day, then refines it with live weather. Each species has a hand-written rule for when it bites, and each lake is scored by how many good-biting species it holds. "Can't decide?" picks a lake near the top of that list and drops a pin on the map.
There's no build step and no framework. The species data, rules, styles and map code all live in one 80 KB HTML file. Merging to main is the deploy, and every branch gets its own preview link to check on a phone.
DESIGN DECISIONS
ZERO LINES OF SERVER CODE
The Worker serves one HTML file, a vendored map library and a preview image. Weather and lake outlines come straight from free public APIs, called from the browser.
BUILT FOR ONE BAR OF SIGNAL
It gets used at the lake. Every outside call has a fallback, and none of them blanks the page. If the weather call fails, tapping a condition chip still re-scores everything, offline.
THREE MAP MIRRORS, NO GUESSING
Lake outlines come from three Overpass mirrors tried in order, each with a 15-second timeout. If all three fail, the page shows the plain map and a link to the official one, never invented coordinates.
CACHE THE SLOW PART
Processed lake geometry is kept in the browser for 30 days, so repeat visits skip the slowest call entirely.
ONE STATE OBJECT DRIVES EVERYTHING
Sky, wind, temperature and time of day live in one small object. Every section re-renders from it, so the game plan, bite badges, lake panel and lake pick always agree.
PREVIEW CARD MADE OFFLINE
Rendering the link-preview image live would blow far past the free plan's 10 ms CPU budget, and a crawler could cache a failed render. It's rendered once and committed instead.