The problem
Florida's Gulf coast has dozens of places to launch a paddleboard and no single answer to the only question that matters at 6am: is it worth going, and where? Wind lives in one app, tides in another, and none of it is written for someone standing on a board. Spot knowledge is tribal. The reviews you can find describe the parking lot, not the water.
What I built
Sun Coast SUP is a free conditions and launch-guide site covering the coast from Crystal River to Siesta Key. It has 55 spot pages, each with a hand-written review in a consistent voice, plus filtered guides for dog-friendly launches, springs, and free parking, and a blog with 30 published posts. I wrote all of it. The reviews tell you the honest downsides: the shallow grass flats at low tide, the small lot that fills by 9, the afternoon storms.
Under the content sits the machine. A Cloudflare Worker on a schedule pulls wind, weather, tide, and water data from Open-Meteo, NOAA, the National Weather Service, and USGS, then distills a 216-request sweep into one snapshot the site scores against every spot. Readings past their freshness window get excluded rather than served. Spots get letter grades with a floor lock, so on a genuinely bad day the top-ranked spot honestly reads a D instead of being curved up to an A.
The Call is the daily output: an automated morning report that renders the day's verdict as a four-slide Instagram carousel, writes the caption from the same scored data, and publishes at 5am Eastern without me touching it. The caption's numbers are templated straight from the data. A language model never generates a tide reading. And if a required data source fails overnight, the pipeline publishes a branded "No Call this morning" card instead of stale conditions. It would rather say nothing than guess.
What it does now
The site went from first commit to live in about a week in late May 2026. The Call has posted daily since June 13, 2026, and started cross-posting to X in August 2026. Every spot page carries structured data (Place, breadcrumbs, and article markup) so search engines can read the site the way a paddler does. Blog keywords follow where the search volume actually is, which is often kayak-led, while the writing stays useful to paddleboarders. No invented statistics anywhere on the site: every number a reader sees traces to a data source or a checked fact.
What went wrong
Plenty. The float-plan feature originally put a paddler's name and route in the URL query string, where it could leak into referrer headers and server logs; an audit caught it, and it now travels in a URL fragment that never leaves the browser. The 15-minute refresh cadence blew through a weather API's free tier and had to slow down. The 5am post has failed on vendor timeouts and needed manual re-fires, which is why it now retries itself three times before giving up. Automated publishing turned out to be a reliability discipline, not a set-it-and-forget-it trick.
What it demonstrates
A daily content operation (editorial voice, search strategy, distribution) doesn't need a team when the systems are built to carry it. The words are hand-written. The numbers never are.