Charles Cove
A 27-page independent community hub for a Florida neighborhood, self-maintaining via two scheduled AI jobs that fetch official sources and keep events, news, and amenity status…

Problem
Charles Cove, a Davenport, FL neighborhood, had no independent online hub for residents. There was no single place for storm-prep info, HOA/CDD explainers, local events, school zoning, or a vetted vendor directory. Any real-estate-adjacent presence built by a licensed agent immediately triggers Florida licensee-advertising rules once a name and a sales offer appear together. That would force brokerage disclosure and turn a community resource into regulated advertising. The site had to be genuinely useful to residents first. It had to stay factually accurate on a rolling basis — events, meeting schedules, amenity status — and never cross into named real-estate solicitation. And it had no ongoing labor budget to hand-maintain that currency.
What was built
A static 27-page site — no framework, no build step — covers a community hub cluster: home, events calendar with .ics feed, news, directory, HOA/CDD guide, resident resources. It also covers a 6-page Davenport-area SEO cluster: living guide, things to do, dining, schools, healthcare, and cost of living with a savings estimator. It runs a live weather widget and Polk County severe-weather alert bar off the National Weather Service API. It has offline/PWA support via service worker, so storm-prep content stays reachable without a network connection, and it ships in English, Spanish, Brazilian Portuguese, and Haitian Creole. A lead-capture pipeline routes contact-form submissions to email and a Resend newsletter audience with a welcome-email step. The site publicly presents as "owned and operated by a Charles Cove resident" with no brokerage, licensee, or agent name anywhere on it. That's a deliberate compliance decision, reversed once mid-build after a brokerage name was briefly added and then pulled.
Technical approach
No CMS, no JS framework, no build pipeline. public/ is the deployed artifact, and Cloudflare Pages serves it directly. One Pages Function handles lead-form POSTs; another handles hostname redirects and analytics injection (_redirects isn't used because it can't match hostnames). Cache discipline is load-bearing: /assets/* ships with a one-year immutable cache header, so any changed asset must ship under a new filename or query-string version. The service worker's cache-name constant has to be bumped in lockstep whenever CSS/JS versions change, or stale precached assets silently persist for returning visitors. The interesting engineering is the two scheduled autonomous content jobs, both launchd-triggered headless claude -p runs on the Mac Mini. A Monday weekly-recheck job fetches CDD, city, and county sources, updates the events/news calendar, and commits+pushes only when content actually changed (silent no-op otherwise). A monthly-digest job runs a two-phase design. Claude composes the digest HTML to a temp file with a restricted Read/Glob/Grep/Write tool scope and no network/API access. A separate shell script then validates the output and makes the actual Resend broadcast API calls, so the model never touches send credentials directly. A live discovered gotcha: Resend's API rejected the Python urllib-based client with 403s, fixed by switching the send path. The lead pipeline always returns success to the visitor even when Resend isn't configured, so a misconfiguration never surfaces as a broken form. The 4-language guide/storm-prep pages are hand-synced translations, not machine-translated at request time, with hreflang tags and a language switcher. Adding a language means adding a new file and wiring it into the switcher, not building a runtime i18n layer.
Creative approach
Craft
The design brief was trust and utility over polish. Aerial drone video runs on the homepage hero. WebP images (~41% lighter) and re-encoded H.264 video (62% lighter homepage hero) were chosen explicitly for LCP performance, since residents check the site during a storm on a spotty connection. Content is organized as two clear clusters: the community hub (events, news, HOA/CDD, directory) and a Davenport-area SEO pillar-and-spoke cluster. The living guide is the pillar; five topic spokes branch off it — things to do, dining, schools, healthcare, cost of living. An explicit hard rule blocks adding more SEO pages once the cluster was judged complete, which resists scope creep for its own sake. Any future area content is directed into the news or community pages instead of a new standalone URL. The spoke pages carry their own compliance guardrails baked into the content itself. The schools page links to the county's official zone-lookup tool instead of hard-coding zone assignments that go stale between school years. The cost-of-living page labels any price figure "representative" with a source note instead of presenting it as a live listing. Every SEO page ships Article and BreadcrumbList JSON-LD with the publisher fixed to "Charles Cove Residents," never a named author, so the structured data stays consistent with the site's anonymous framing.
Reframe
The non-obvious move was solving a legal constraint with an identity decision, not a copy tweak. Florida licensee-advertising rules only trigger when a named licensee and a real-estate offer appear together, so the fix wasn't softer real-estate language — it was removing the name entirely. The site is framed as neighbor-built, not agent-built. That lets it carry soft "thinking of selling?" and "thinking of buying?" contact-form options without ever becoming regulated advertising, since the site never states that whoever receives those leads is a licensee. That decision was tested mid-build (a brokerage name was added, then explicitly reversed), not assumed correct from the start. The framing also set an explicit goal order instead of treating trust and lead-generation as equally weighted. Be genuinely useful to residents first. Let that use build an "authority halo" second. Only then capture relationships softly, through stay-connected and event-suggestion forms. The ordering is treated as causal, not a list of equal priorities: a site chasing the halo without being genuinely useful first would read as hollow to residents who'd notice.
Process and what failed
The build went through a real identity reversal. The June 2026 build briefly added brokerage branding, then pulled it once the compliance implication was reasoned through, landing on the permanent unnamed-resident framing. Separately, the site went through a full pivot from a seller-funnel framing to a community-hub framing mid-build. That pivot left behind stale seller-funnel URLs that Cloudflare's Pages asset cache kept serving. It was fixed with a 301 middleware redirect instead of deleting and hoping. Cache versioning bit twice: an OG image 404 from a www→apex redirect gap, and an HTML cache-control fix (must-revalidate) after old copy kept being served post-deploy.
Outcome
Live at charlescove.us, with weekly and monthly content-maintenance jobs running unattended since June 2026. An ongoing series of Monday "weekly sweep" commits — Davenport meeting schedule shifts, road work, community event additions — runs through early August 2026 with no human edits required when nothing changed. The August 3 sweep is a representative run. It landed one commit adding a Davenport Planning Commission meeting, a Reverse Raffle date, a Haines City Commission meeting, and a September budget-season schedule shift. CDD amenity status stayed unchanged, because the official source hadn't posted a new closure notice. The full 27-page site and its sitemap were submitted to Google Search Console on 2026-06-13 for indexing. The compliance framing (no named brokerage/agent) has held as the permanent, settled state since the mid-build reversal. The weekly job has occasionally hit its session usage limit on heavy-fetch weeks, observed once, on 2026-07-20. The commit and push had already completed before the limit landed, so no sweep has yet failed to ship.
Related work
- Live2026Community Hub Network21 independently branded community-guide sites, each with live local data, lead capture, and automated monthly digests, built to stay legally clear of brokerage advertising rules.
- Live2026Evolve Estates SiteA single hand-edited HTML file running a full multilingual real estate brokerage site — AI chat, IDX search, buyer tools, and an 11-language i18n layer, with zero build step.
- Live2026Evolve With AIA courtroom-themed landing page for a satirical AI-operator show, with a self-generating lead-magnet PDF pipeline, an email-gated toolkit, and an evidence-discipline standard…