💡 Inspiration

Extreme heat is the deadliest weather hazard in the United States, killing roughly 2,000 people a year. In 2024 the CDC recorded 2,391 heat-related deaths, and adults aged 65–74 made up the largest share. Heat also sends over 100,000 people to emergency rooms in a single year.

What bothered us is that this is a warning problem, not a knowledge problem. Everyone knows heat is dangerous. But a generic "Heat Advisory" for a whole county doesn't tell you:

  • how risky it is right now, where you are, for someone like you
  • where the closest place to cool down is, and whether it's open
  • whether anyone will notice if you're alone and in trouble

Heat kills quietly and mostly at home, and the people at highest risk are often the ones who live alone. We wanted to build the missing last mile between the forecast and the person.

🛡️ What it does

ShadeNet is a free, installable web app (PWA) that turns live weather data, open map data, and your community into a heat shield.

  1. Live Heat Risk Score (0–100): A personalized score for your exact location, updated from live "feels-like" temperature, UV index, and air quality. You pick a profile (older adult, outdoor worker, child/parent, health condition, general) and the score adjusts for how vulnerable you are.
  2. Cool Refuge Finder: Shows the nearest libraries, community centers, malls, water fountains, and shaded parks pulled from OpenStreetMap, sorted by walking distance, with hours when known. One tap starts walking directions.
  3. Buddy Check: Add a trusted contact (family, neighbor, friend). When your risk score hits High or Extreme, ShadeNet asks you to tap "I'm OK" every few hours. If you don't, your buddy gets an alert with your last check-in time and approximate location.
  4. Plain-language Heat Coach: Converts your score into 3 specific actions in simple language ("Drink water now. Move to the library 0.4 mi away. Avoid going out before 6 PM."). It has an LLM mode for natural language and a rule-based fallback, so it still works with no connection to an AI service.
  5. Community Shade Reports: Anyone can drop a pin like "bus stop with no shade", "broken water fountain" or "cool room open". Over time this builds a heat equity map of where a community is least protected, which councils and nonprofits can act on.

🧮 How the Risk Score works

We wanted the score to be transparent, not a black box. For apparent temperature \(T_a\) (°C), UV index, and US AQI:

$$ R = 100 \cdot \min\left(1,\; M \cdot \left[\, 0.65\,c!\left(\frac{T_a - 27}{14}\right) + 0.20\,c!\left(\frac{UV}{11}\right) + 0.15\,c!\left(\frac{AQI}{150}\right) \right]\right) $$

where \(c(x)\) clamps \(x\) to \([0,1]\) and \(M\) is a vulnerability multiplier (\(M = 1.0\) for the general profile, up to \(1.25\) for older adults and outdoor workers). Scores map to four tiers: Low (0–24), Moderate (25–49), High (50–74), Extreme (75–100).

⚠️ This is a simple, explainable heuristic for awareness, not medical advice. Official National Weather Service alerts always take priority, and ShadeNet links to them.

🛠️ How we built it

  • Frontend: React + TypeScript + Vite, styled with Tailwind, installable as a PWA with a service worker so the last known score and refuge list work offline.
  • Live data: Open-Meteo for apparent temperature, UV, and air quality (no API key, free for non-commercial use), refreshed on a short interval and when the app regains focus.
  • Maps and refuges: Leaflet with OpenStreetMap tiles, plus the Overpass API to query nearby libraries, community centres, drinking water, and parks. We compute distances client-side and cache results per area.
  • Backend: Supabase (PostgreSQL) stores buddy links, check-in timestamps, and community shade reports. Row-level security keeps each person's data private to them and their buddy.
  • Alerts: Web Push notifications to buddies, with a scheduled function that flags missed check-ins during High/Extreme conditions.
  • Heat Coach: An LLM call turns the numeric score and profile into short, plain-language actions, with a deterministic rule-based fallback.
  • Privacy by design: Location is only used on-device to compute the score. We only store a location when a user chooses to share it with a buddy or file a report, and users can delete everything with one tap.

🧗 Challenges we ran into

  • Making a score people trust: A single mysterious number is easy to ignore. We chose a simple formula, showed the inputs behind it, and added clear tier labels and actions.
  • Messy open map data: OpenStreetMap coverage and opening hours vary a lot by area. We handled missing data honestly, labelling "hours unknown" instead of guessing, and added community reports to fill the gaps.
  • Alerts without being annoying: Too many notifications get muted, so Buddy Check only activates at High/Extreme risk and gives a grace period before escalating.
  • Privacy vs. usefulness: Safety features need location, but we didn't want to track people. Keeping computation on-device and sharing only by explicit opt-in was the compromise.

🏆 Accomplishments we're proud of

  • A heat tool that goes past a warning to a personal score, a place to go, and a person who cares
  • A transparent, explainable risk model instead of a black box
  • Built entirely on free, open data and APIs, so any community can use it at zero cost
  • Works offline-first for the moments when connectivity or power is the problem

📚 What we learned

  • How apparent temperature, humidity, UV, and air quality combine into real physiological risk, and why older adults and outdoor workers are affected differently
  • How to query and clean OpenStreetMap data with the Overpass API
  • How to build installable, offline-capable PWAs with service workers and push notifications
  • That designing for safety means designing for the least tech-savvy user, so big buttons, plain language, and one-tap actions matter most

🚀 What's next

  • Link with official National Weather Service alerts and local cooling-center lists
  • SMS fallback for buddies and users without smartphones
  • Multilingual Heat Coach (Spanish first)
  • Partnerships with city councils, libraries, and senior centres, who could use the heat equity map to decide where to add shade, water, and cooling spots
  • Extending the same buddy-check model to other hazards like floods, cold snaps, and wildfire smoke

🌍 Impact

Anyone, in any community, can check their real-time heat risk, find a place to cool down, and make sure someone is looking out for them, for free. ShadeNet's goal is simple: no one should suffer from heat alone.

Built With

Share this project:

Updates

Submission history