How the network grows organically from real local intent — visitors spin up the next site — and the two per-root guardrails that keep that growth clean.
The organic, demand-driven way the network indexes its next site. On every business site (below "More from the neighborhood", which shows EXISTING Doozer sites), a small section suggests up to 3 nearby same-niche places that are NOT yet on Doozer, pulled from Google Places and deduped by place_id via Magellan. One tap builds that place's site and lands the visitor on it. A real visitor arriving from Google, with real local intent, spins up the neighbor that wasn't there yet. This is the same widget NBMN shows for thin category searches, brought to business sites.
nbmnPlacesNotOnDoozer() (includes/nearbymenow-data.php) — the onlypaid Places call is a cache MISS (cached 30 days per niche + geo-bucket, empties too). Rendered by includes/places-nearby-suggest.php (renderPlacesNearbySuggest), !important-hardened chrome (muse pages).
?e=nbmn_build_place → resolvePlaceToEcosystem(...)(the WHERE engine). Skeleton-first, content queued, noindex until quality-gated (SEO discipline). Hourly throttle platform_settings.nbmn_build_max_per_hour.
place_resolver_min_score (default 40 — a 50+review / 4.3+ ratinglocal business is real content, not slop; it shouldn't fail just for lacking a website, which is exactly who Doozer serves). Below-bar places DON'T build — the card opens a "contact anyway" popup (name, rating, click-to-call, directions). The internal score is NEVER shown to a visitor. Rejected place_ids (logged score < the bar in place_resolutions) are dropped from future suggestions.
businesses at render so anew site never suggests itself.
root_domains.custom_settings)service_area ={radius_mi, optional lat/lng} (center auto-derives from the root's business centroid). rootServiceArea() (geographic-helpers.php). Filters suggestions AND hard-gates the build, so westmilford.biz only ever suggests/builds within 12 mi. Distance is the limit, full stop (v2.2.394 fix). Two bugs were closed: (a) the build gate lived only on the unknown-place path, so a business ALREADY in the ecosystem (e.g. a Paterson bakery, 18 mi out) skipped it and built a sibling from "More places nearby." The gate is now a shared helper (placeResolverServiceAreaBlock in place-resolver.php) called on EVERY build path, including reused/known businesses. (b) The suggestion filter's county "edge tiebreaker" used to rescue any same-county place up to 2x the radius — Paterson is the same county as West Milford, so it showed at 16 mi. Suggestions are now strict to the radius too (any state in range, NO county rescue past it), so the list agrees with the build gate and never teases an unbuildable site. NOTE: the admin edit still uses raw lat/lng fields (place-picker is a TODO); the values store correctly into service_area, so this was never the leak.
expand_target = self (a subdomainon THIS root, open regional directories only) or external (DEFAULT — the neutral doozer.site). rootExpandTarget(). The card's data-root carries the resolved target. SAFE DEFAULT is external, so a curated/branded root (elks.club, vsso.net) can NEVER sprout a random-business subdomain — those build on doozer.site. westmilford.biz is set to self.
Both are managed per root in Admin → Root Domains. This is the intake valve of the flywheel, refined so growth is local, intent-driven, and never pollutes a branded network. See [[project_search_to_site_money_clouds]] and NearByMeNow.