Subtle gradient — cool to warm
Quiet, professional. Neighborhoods shade from cool blue (quiet) to warm orange (busy). Looks like a real-estate market map.
Saturated heat — Nabe brand gradient
On-brand. Indigo (quiet) → violet → magenta (alive). Stronger, more emotional. Same color family as the rest of the app.
Neutral polygons + live badges
Map stays calm. Each nabe gets a small badge with current Right Now activity count. Reads "data layer over geography" rather than "heat map of feelings." More legible at iPad scale.
Current dropdown — all 10 cities
10 entries, equal weight, no signal about what you actually use.
Saved / favorite nabes only
Just the nabes you care about. Labels (home / work / friends) are optional. Full list collapsed behind "Browse all cities."
📐 Architecture notes (optional — tap to expand)
The data structure is city-agnostic from day 1. Each neighborhood gets a liveness score computed from 3 inputs: (a) post count in last N hours, (b) event count today, (c) Right Now hotspot activity. Combined into a normalized 0–1 score that drives the color.
NYC-first means: the 3 NYC pilot polygons (W'burg / Greenpoint / East Village) come from real NTA data in src/data/neighborhoodPolygons.ts. To roll out, we add the remaining ~15 NYC neighborhoods (Manhattan grid + Brooklyn nabes) from the same NTA dataset. The data pipeline doesn't change — just add more polygon entries.
For LA / Tokyo / Paris / etc., the city-scale polygons we already have render at the SAME zoom level. For "drill into LA neighborhoods" we'd add LA neighborhood polygons (Silver Lake, Echo Park, Venice, etc.) from OpenStreetMap admin boundaries — same pipeline as NYC NTA.
The saved-nabes dropdown reads from localStorage.nabe_saved_nabes (a string array of NeighborhoodKey IDs). EditProfile gets a "Manage your nabes" section. No backend needed for v1.
When you've decided
Three actions — tell me in chat which one:
- 1. "Variant 1 / 2 / 3 — ship it" → I code the chosen variant as a Phase 47 feature (after the iPad UAT + monetization deep dive).
- 2. "Mix variants" → e.g. "Variant 2 colors + Variant 3 badges" → I revise the mockup before coding.
- 3. "None of these — try X" → I rework the mockup before any code.
All mockup data is fake — the liveness scores are made up so the visual reads correctly. Real data hooks come from MOCK_POSTS / MOCK_EVENTS / MOCK_HOTSPOTS at code time.