Inspiration 🚲

As UC Davis students, biking is part of everyday life. Whether we’re heading to class, downtown, or back home late at night, we constantly rely on Davis’s bike infrastructure.

But even in one of the most bike-friendly cities in the country, there are intersections and roads that cyclists quietly learn to avoid. Unsafe merges, blocked bike lanes, dangerous crossings, poor lighting, and aggressive turns create repeated close calls that rarely get formally reported.

Most city safety systems only react after a crash happens. But near-misses are warning signs too.

We realized there was no simple, accessible way for cyclists to quickly signal unsafe areas before those close calls became serious accidents. That insight became BlindSpot.


What it does 📍

BlindSpot is a mobile-first cyclist safety intelligence platform for Davis.

Cyclists can quickly report near-misses, dangerous intersections, blocked bike lanes, unsafe turns, potholes, poor lighting, and other safety hazards directly from the app.

Reports immediately appear on a live safety map alongside publicly-informed hotspot context from Davis safety planning materials.

Users can switch between individual Markers and aggregated Risk Zones to identify repeated danger patterns across the city.

BlindSpot also includes an AI Safety Planner powered by Claude, which helps summarize repeated infrastructure issues and generate recommendations about which intersections may require safety improvements first.

Authenticated users can review and manage their own reports through a personal report history page.


How we built it 🛠️

We designed the BlindSpot interface in Figma and implemented the frontend using React, TypeScript, Vite, and TailwindCSS.

For mapping and geospatial visualization, we used React Leaflet together with OpenStreetMap and CARTO tiles to create the live safety map and Risk Zones overlay system.

Supabase powers our backend infrastructure, including:

  • PostgreSQL database storage
  • Supabase Auth
  • realtime updates
  • row-level security policies
  • Edge Functions for secure AI calls

We used Claude through Supabase Edge Functions to generate infrastructure recommendations and planner responses without exposing API keys in the browser.

One of our biggest architectural decisions was separating publicly-informed hotspot context from live community-generated reports. This allowed us to simulate realistic city-scale safety density while still supporting fully realtime user submissions.


Challenges we ran into 😰

One of our biggest challenges was balancing ambition with stability.

We initially explored more advanced routing systems and dynamic heatmaps, but quickly realized that reliability during live judging mattered more than overengineering features.

Another major challenge was building a realtime geospatial reporting workflow that still felt lightweight and mobile-friendly. We wanted reporting a near-miss to feel fast enough that cyclists would actually use it after a close call.

We also spent significant time refining how AI recommendations should be framed responsibly. Instead of presenting AI as “predicting crashes,” we focused on helping summarize repeated safety patterns and infrastructure concerns.


Accomplishments that we're proud of 😁

We’re especially proud that BlindSpot feels like a real civic-tech platform rather than just a prototype.

Some accomplishments we’re proud of include:

  • building authenticated realtime reporting
  • integrating live map updates
  • creating AI-assisted planner recommendations
  • implementing user-scoped report history with RLS
  • designing a polished mobile-first UI
  • grounding the project in real Davis cycling concerns and survey research

We’re also proud of how cohesive the overall story became: near-misses are invisible safety data, and BlindSpot helps make them visible before crashes happen.


What we learned 📚

One of the biggest things we learned is that civic safety technology is not just a technical problem — it’s also a participation problem.

Public crash data only captures incidents after harm occurs, but near-misses contain valuable early warning signals that often go undocumented.

We also learned that AI becomes much more useful when grounded in structured local context. The planner became significantly stronger once we summarized real signal patterns, repeated intersections, and severity trends before generating recommendations.

On the engineering side, we learned how to build a full-stack realtime web application using Supabase Auth, PostgreSQL, Edge Functions, and geospatial interfaces while maintaining a smooth mobile-first experience.


What's next for BlindSpot 🔮

We want to continue expanding BlindSpot beyond HackDavis.

Future plans include:

  • integrating richer public transportation safety datasets
  • improving safer-route recommendations
  • adding city staff dashboards and analytics exports
  • expanding to other bike-heavy cities beyond Davis
  • improving geospatial clustering and routing intelligence
  • enabling stronger long-term infrastructure planning tools

BlindSpot’s long-term goal is simple:

Help cities see danger before it becomes a crash statistic.

Built With

Share this project:

Updates