Inspiration

Toronto has shelters, warming centres, and support services — but finding them when you're in crisis means navigating outdated PDFs, scattered
websites, and phone trees. We wanted to fix that with something simple, fast, and always current.

How we built it

HavenNow is a cross-platform app (iOS, Android, web) built with Expo, React
Native, and TypeScript. We pull live shelter availability from Toronto Open Data APIs, feed it through a Supabase backend with hourly sync, and display
everything on an interactive map. On mobile we use react-native-maps; on web, Leaflet. Offline-first via SQLite so it works without a connection. One-tap 211 calling built in.

We also trained a model on historical shelter occupancy data to predict
availability windows — so users don't just see whether a bed is open right now, but when one is likely to open up next.

Challenges

Toronto's open data APIs are inconsistent — field names change, availability data lags, and some endpoints go down entirely. Building a reliable offline fallback while keeping data fresh was the hardest technical problem. We also had to design for a user who may be cold, scared, and on a cracked phone screen — every tap counts.

What we learned

Designing for crisis means ruthless simplicity. We cut features constantly.
We also learned how much useful civic data exists publicly — and how little of it is actually accessible to the people who need it most.

Built With

Share this project:

Updates