Community Hub Network
21 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.
- 21
- live community sites
- 26
- pages per site (20 English + 6 translated)
- 48
- uptime monitors across the network

Problem
Evolve Estates served 21 distinct Florida communities but had no scalable, compliant way to give each one a real local-information presence. A single earlier site, Charles Cove, proved the model: independent, neutral-branded community guides build trust and generate leads. But Florida real-estate advertising rules (FREC 61J2-10.025) forbid attaching brokerage, agent, or listing content to anything framed as a neutral community resource. The moment property listings or IDX search appear on a page like this, it stops being an independent guide and becomes regulated brokerage advertising. Hand-building 21 separate sites with that constraint enforced consistently, across every page, every translation, and every future edit, was not something a manual content workflow could sustain. And the more common failure mode for this kind of local-content network — events pages and directories that quietly go stale within months — needed to be designed out from the start, not patched later.
What was built
A generator produces 21 separate town websites, one per Florida community Evolve serves, each on its own domain with zero Evolve or brokerage branding. Every site carries local information: weather and tropical storm alerts pulled from live NWS/NHC feeds, HOA/CDD guidance, cost-of-living estimates, school-zone lookups, and town-specific pages only that town could have. Clermont gets a live USGS river gauge, Davenport a county-boundary lookup tool, Lake Nona live airport and medical data. Visitors can leave their email for a lead form or a monthly digest. The sites reply with an automated welcome email and a homepage "this month in {town}" section that appears only once real local news and events have been researched and published for that month. A compliance guard blocks any deploy containing brokerage or agent language, and every page carries a sitewide disclaimer plus a privacy page stating the site is an independent, privately operated resource, not a resident-run community group.
Technical approach
Two generations exist in this repo. The original (scripts/generate.mjs) is a zero-dependency Node generator that stamps out each site's HTML/CSS/JS from data/communities.json, the single source of truth for all 21 towns' facts, translations, and unique per-town data blocks. As of 2026-07-28, production moved to a rebuilt Next.js 16 static-export engine (engine/) that reimplements the same site behavior in a component-driven motion system. It uses anime.js-driven scroll choreography, per-town brand palettes computed with a WCAG auto-darken guard, and a documented token system in DESIGN_SYSTEM.md. Both trees must stay byte-identical for anything that touches the edge — Functions, lead capture, i18n — while intentionally diverging in presentation. A dedicated seo-index-guard.mjs gate exists specifically because that divergence once regressed indexability unnoticed. Each site ships as a Cloudflare Pages project with its own Pages Functions for lead capture, subscribe, and a /api/this-month KV-backed endpoint that only renders when the monthly digest pipeline has actually published something. That avoids stale-content rot instead of filling the slot with placeholder copy. The monthly digest pipeline (nurture.mjs + digest-compose.mjs + digest-publish-kv.mjs) runs on a scheduled job. It drafts branded Resend broadcasts per town, then a headless Claude research pass replaces the draft with month-specific content. That content is gated on hard rules: minimum 2 events and 1 news item, a banned-terms grep for brokerage/agent language, and a weekday-vs-ISO-date consistency check per event. It falls back to the evergreen draft if any gate fails. Nothing sends without Victor manually clicking send in Resend; the automation only prepares drafts. The CI-style guard script (compliance-guard, originality-guard, css-var-guard, lint) and a large unit-test suite (data integrity, hero-video sourcing, hydration gating, i18n disclaimer parity, motion-capability regression, visual-diff regression) run before any site is considered shippable.
Creative approach
Craft
Each town gets a genuinely distinct visual identity extracted from that city's real municipal branding, not a shared template with a color swap. An automated palette-distinctness audit measured RGB distance across all 21 sites and caught three near-identical town-color pairs before launch: lakeland to plum-wine, st-cloud to sunset-sienna, wedgefield to pine-olive. All three were recolored. Hero sections use short muted-loop aerial video per town, generated per-location instead of stock footage, with a brand-tinted scrim and poster fallback so the page still reads correctly before video loads. Every animated element respects prefers-reduced-motion, and the motion-rebuild engine treats scroll choreography as a first-class system with a documented token vocabulary (DESIGN_SYSTEM.md), not one-off page effects. Logos are hand-drawn SVGs, not AI-raster images, chosen specifically because they stay crisp at favicon size and cost nothing to regenerate at scale across 21 sites simultaneously.
Reframe
The non-obvious insight carried over from the Charles Cove precedent: a community site earns trust and leads precisely by not being a brokerage site. The constraint (no Evolve name, no listings, no resident-ownership claim) isn't a compliance tax bolted on after the fact. It's the entire mechanism that makes the content credible enough to convert. The second reframe came at scale. Instead of authoring 21 towns' worth of local content by hand and letting it rot, the digest pipeline treats "no fresh material this month" as a valid, silent outcome: keep the evergreen draft, don't publish a stale this-month section, instead of forcing content to appear on a calendar regardless of whether anything real happened.
Process and what failed
The repo shows an explicit architectural reversal. The original zero-dependency HTML generator (community-hubs) was fully built and deployed to all 21 domains, then superseded by a from-scratch Next.js motion rebuild that had to reach feature and compliance parity before cutover. That parity requirement produced a real production incident. On 2026-07-28, a session ran the old generator's deploy command against the already-migrated fleet. It silently reverted four towns' Cloudflare Pages projects to ad_hoc / commit_dirty state, undoing verified migration work with no visible breakage (every domain still returned 200). The fix was procedural, not just technical: the old repo's CLAUDE.md was rewritten with a hard stop-and-ask rule before any deploy command runs from that tree. Other real gotchas logged along the way: Cloudflare Pages silently drops dashboard-set plain-text environment variables on redeploy, forcing all lead-routing config into wrangler.toml. Resend's PATCH endpoint nulls out any field omitted from the request body, breaking digest updates until every PATCH resent the full payload. And Pages secrets set via wrangler pages secret put don't take effect until the next deployment, which cost a debugging cycle mid-launch.
Outcome
All 21 community sites are live on their own registered domains with working lead capture, verified transactional email delivery (Resend, domain-verified per site), uptime monitoring across the fleet, and a monthly automated digest pipeline that has shipped at least one full cycle (welcome email + "this month" homepage section) to all 21 sites. Each site carries live civic data feeds (NWS weather alerts, NHC tropical tracking, USGS river gauges, county boundary lookups) instead of static copy, and translations (Spanish, Portuguese, Haitian Creole) ship on every site with reciprocal hreflang tags. Track 1 (the same community data surfaced as pages on the main Evolve Estates site) also shipped to production separately. Legal review of the compliance framing was still pending as of the last HANDOFF entry reviewed.
Related work
- Live2026Charles CoveA 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…
- 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 StoresA static-site generator that builds 32 independent brand storefronts from one codebase, with build-time voice and brand-isolation gates and gated digital delivery.