About CivicSignal
I was inspired by the difference between what a place looks like online and what it can feel like in real life. I often attend hackathons in San Francisco, and in some areas the safety situation can change quickly: smoke, overdoses, aggressive behavior, blocked sidewalks, public disturbances, or other hazards may appear and disappear within hours. A map or website might say an area is safe, but when you actually arrive, the situation can be completely different.
CivicSignal is a civic safety platform that lets residents report real-world hazards with a title, description, location, and image evidence. Those reports become live map pins so other citizens can avoid risky areas, while government or police responders can mark incidents as confirmed, in progress, or resolved.
How I Built It
I built CivicSignal as a full-stack web app with a live hazard map, report submission flow, AI-assisted evidence review, citizen verification, and responder controls. The frontend focuses on fast map-based decision making, while the backend handles reports, clusters, risk scoring, moderation states, and role-based views.
The main idea is:
$$ \text{Public Safety Signal} = \text{Citizen Reports} + \text{Location} + \text{Verification} + \text{Responder Status} $$
Instead of only showing static crime or safety data, CivicSignal tries to show what is happening right now.
What I Learned
I learned how important product clarity is. A civic safety app cannot just look impressive; the flow has to be obvious in seconds: report a hazard, see it on the map, verify it, and let responders update its status.
I also learned a lot about designing trust systems. Reports need to be useful without allowing false accusations, private-person targeting, or panic. That meant building moderation rules, public and private visibility states, and clear labels for what is citizen-reported versus government-confirmed.
Challenges
The hardest part was making the map state consistent. If a responder marks a hazard resolved, the pin should disappear, the public card should disappear, and the cleared counter should update correctly.
Another challenge was balancing ambition with hackathon time. CivicSignal could become a much larger platform, but for this version I focused on the highest-impact demo:
$$ \text{Report} \rightarrow \text{Map Pin} \rightarrow \text{Community Verification} \rightarrow \text{Responder Action} $$
Why It Matters
CivicSignal is built around a real problem: safety conditions are local, fast-changing, and often underreported. If successful, a tool like this could help people avoid danger, help cities respond faster, and make public safety information more immediate and community-driven.
Built With
- ai-evidence-review
- claude-code
- codex
- grok
- maplibre-gl
- next.js
- node.js
- openstreetmap
- react
- supabase
- tailwind-css
- typescript
Log in or sign up for Devpost to join the conversation.