The problem
In an emergency nobody has time to search. The information needs to be one screen, correct, and usable on a bad connection.
What I built
Everything about this one was shaped by the constraint that it is used under stress. The critical path is one screen: where you are, what is near you, and the number to call.
Data is cached aggressively on the client, because the situations this is for are exactly the situations where the network is worst.
Architecture
Django backend with a deliberately small payload, geospatial proximity queries in PostgreSQL, and a client that works from cache when the network does not answer.
Problems worth writing down
Stale contact numbers
A wrong ambulance number is worse than no app. Records carry a verified date and anything unverified is visibly marked.
Slow connections
The first version waited on a location fix before showing anything. It now renders the last known area immediately and refines when the fix lands.