Inspiration
We built this for neurodivergent New Yorkers — and for anyone whose day is shaped by sound, light, and crowding — because public maps still treat accessibility as a curb cut. Cognitive, acoustic, and psychological access is mostly invisible.
We were also standing inside the product. The demo opens on the Stavros Niarchos Foundation Library: a public indoor micro-refuge in Midtown. The city already publishes 311 and library locations. Neighbors already notice HVAC hum, harsh lighting, and quiet corners. Nobody had put those layers on one map, in calm language, without telling people where they “should” go.
What it does
CivicPulse is a hyper-local sensory radar for New York. It layers live NYC Open Data (311 noise and construction, DOT pedestrian count sites, public library pins) with guest sensory audits into an explainable Comfort Index (0–100). Language stays factual: “high acoustic energy,” not alarm. You see the data, then you choose: stay, pass through, or step inside.
How we built it
A single Next.js 15 app (TypeScript, Tailwind, MapLibre — no paid map token). Runtime Open Data goes through Socrata REST, not a builder-only tool. A committed seed plus an hour-long cache keep the map populated if Open Data is slow.
The Comfort Index is transparent: nearby 311 reports and crowd samples pull the score down; nearby libraries and community-verified refuges pull it up. Factors are listed in plain language.
Pulse Briefing uses Gemini when a key is present, with a local NVC template if it is not — so the demo never dies on a missing model.
Challenges we ran into
Scope. Four engines and a Python backend would have missed the deadline. We shipped one live radar and locked the rest behind “coming online.”
Serverless storage. Without a database, every guest pin would vanish. We added a guest-only audit table rather than login.
Honest layers. Crowding is not live occupancy. We labeled it as a sample, not a people-counter.
Demo reliability. Open Data can throttle; Gemini can miss a model. Cache, seed data, and a template briefing were the fallbacks.
What's next for CivicPulse
Locked behind 4 engines dropdown
Built With
- maplibre
- tailwind
- typescript

Log in or sign up for Devpost to join the conversation.