Add an info-exchange homepage for centers that publish observations and host weather stations but don't issue forecasts — landing EWYAIX (Eastern Wyoming Avalanche Info Exchange, ewyoavalanche.org) as the first one.
Instead of the default forecast homepage (forecast copy + upcoming-events block), provisionTenant writes an info-exchange variant: observation-focused copy + an ObservationsWidget block. Everything else below is plumbing to make that homepage reachable and correct. NAC already models these centers (EWYAIX, SOAIX); our schema parsing and "every tenant forecasts" provisioning assumption currently reject them.
Ships as one PR — the EWYAIX seed is the end-to-end test.
Re-scoped 2026-06-11 from the original "add Eastern Idaho" ask (now #1111) after a /grill-me session.
Constraint: no kind/discriminator field. "Info exchange" ≡ !platforms.forecasts && platforms.obs; all visibility is driven by NAC platforms flags.
The homepage variant (centerpiece)
In provisionTenant (src/collections/Tenants/endpoints/provisionTenant.ts), branch on !platforms.forecasts when creating the home page:
Plumbing to support it
Acceptance (smoke-check EWYAIX): homepage shows the observations widget, no forecasts/weather nav tabs; /observations, /observations/submit, /weather/stations/map work; /forecasts/avalanche, /weather/forecast 404; admin Pages list has About Us, Donate/Membership, Volunteer.
Follow-ups
Add an info-exchange homepage for centers that publish observations and host weather stations but don't issue forecasts — landing EWYAIX (Eastern Wyoming Avalanche Info Exchange,
ewyoavalanche.org) as the first one.Instead of the default forecast homepage (forecast copy + upcoming-events block),
provisionTenantwrites an info-exchange variant: observation-focused copy + anObservationsWidgetblock. Everything else below is plumbing to make that homepage reachable and correct. NAC already models these centers (EWYAIX, SOAIX); our schema parsing and "every tenant forecasts" provisioning assumption currently reject them.Ships as one PR — the EWYAIX seed is the end-to-end test.
Constraint: no
kind/discriminator field. "Info exchange" ≡!platforms.forecasts && platforms.obs; all visibility is driven by NACplatformsflags.The homepage variant (centerpiece)
In
provisionTenant(src/collections/Tenants/endpoints/provisionTenant.ts), branch on!platforms.forecastswhen creating the home page:highlightedContent(observation/safety-focused, not "avalanche forecasts, mountain weather conditions").observationsWidgetblock instead of the defaulteventListblock.ObservationsWidget(src/blocks/ObservationsWidget/, slugobservationsWidget, no fields): heading + Submit button +<ObservationsDisclaimer />+<NACWidget widget="observations" />. Register inRenderBlocks.tsx+ HomePageslayout; migrationadd_observations_widget_block; regenerate types.Plumbing to support it
avalancheCenterSchema(src/services/nac/types/schemas.ts) so info exchanges parse:citynullable,confignullable, addOther = 'other'toAvalancheCenterType. Fixture test: NWAC (full), EWYAIX + SOAIX (nulls).<NACWidget widget="warnings" />(src/app/(frontend)/[center]/page.tsx) onplatforms.warnings. Danger map unchanged (info-exchange zones render gray "no rating").!platforms.forecasts: gateBUILT_IN_PAGES"Weather Stations" onplatforms.stations;resolveBuiltInPagesskips AFP zones fetch + stale "All Forecasts" fallback; reducedPAGES_TO_PROVISION= About Us, Donate/Membership, Volunteer.ewyaixtoAVALANCHE_CENTERS(src/utilities/tenancy/avalancheCenters.ts) withcustomDomain: 'ewyoavalanche.org'(config-only, does not flip DNS — EWY production cutover to NWAC platform #1110); update the stale "excluded" comment.provisionTenantforewyaix(prod +pnpm seed).Acceptance (smoke-check EWYAIX): homepage shows the observations widget, no forecasts/weather nav tabs;
/observations,/observations/submit,/weather/stations/mapwork;/forecasts/avalanche,/weather/forecast404; admin Pages list has About Us, Donate/Membership, Volunteer.Follow-ups