Five volunteers, six thousand residents, no infrastructure
A neighborhood association with an active zoning case in front of the city, and nothing to run it on.
A 6,000-resident neighborhood association across seventy-two square blocks of Oak Lawn, incorporated as a Texas nonprofit and federal 501(c)(3).
Five volunteers, one active zoning case in front of the city, and no infrastructure to run any of it. No membership system, no dues, no way to reach neighbors that did not depend on one person maintaining a list on their laptop.
How we untangled it.
Two platforms, wired together, with one member record shared between them: membership, CRM, dues, and broadcast email in one; the public site and CMS in the other. No spreadsheets, no separate mail tool.
The judgment call that mattered most was not technical. A neighborhood association's credibility with a planning commission depends on its record reading as a record — so the zoning case collection was built with a fixed, procedural status vocabulary. Filed, under review, scheduled for hearing, heard, approved, denied, withdrawn, inactive. No sentiment fields. No ratings. The structure enforces neutrality whether or not the person entering it is having a bad week.
What was built.
A full site rebuild — fourteen pages, four CMS collections, header and footer as global components, and breakpoint-bound design tokens, built headlessly through the Webflow API rather than by hand. That is what made a rebuild affordable at volunteer-organization scale.
A membership and dues model, from zero. Six tiers — two resident levels, three business supporter levels, and a free email-list option so a neighbor can be reached without being sold to. Signup, checkout, password-set, and welcome connected end to end.
An elected-official directory bound to the database, filtered to currently serving. A term ends, a record switches off, the page updates. Nobody emails a commissioner who left office two years ago.
A search and answer-engine foundation — one organization identity defined once and referenced by every page, so fourteen pages read as a single entity rather than fourteen unrelated ones.
Plus the things nobody budgets for: street sign toppers designed to city submission spec in three die-cut variants, park adoption materials for two triangle parks, and a hundred-thousand-dollar good neighbor agreement reviewed line by line for scope, escrow survival, and termination.
What changed.
Systems that did not exist before: a membership and dues platform, a public case record with enforced neutral status vocabulary, a neighbor email system reaching roughly 220 opted-in residents, a structured-data layer across fourteen page-level nodes and three CMS templates, and a published privacy policy and terms with a redirect map retiring the association's campaign-era URLs.
And the things found broken along the way, which is usually where the value hides: two competing membership loaders on the old site, the second overwriting the first's configuration. A post-purchase redirect pointing at a page that had never existed on either site. Two forms live for six days that validated nothing, submitted nothing, and navigated to a thank-you page so they looked like they worked. And a 194KB legal document reduced to 43KB with 99.3% of its words intact, so it could actually load.
What this page does not carry is a conversion number. Analytics events were written and delivered but never installed, and the checkout runs in a popup, so no sale has ever been measured. We would rather say that than publish a figure we cannot source.
Webflow · Outseta · JSON-LD structured data