
Wayfinder
The problem
A 2,000-person fest, five stages, and no signage that makes sense. You're flipping between a PDF schedule and a crowd you can barely see over. By the time you find the right zone, the session is half over. Hack2Skill × PromptWars handed me exactly that chaos: confusing navigation, no easy way to discover what's on, delayed announcements, and no fast path to help when something goes wrong.
What I built
Zone and session discovery
Every stage, food court, restroom, and help desk, plus the full session schedule, visible at a glance on one screen. Tap any zone and see exactly where it is on an interactive map with walking directions from where you're standing. No flipping between a map and a PDF, no asking three volunteers before you find the right tent.
One-tap SOS with zone detection
"Confusing" and "unsafe" are different problems, and the second one needed a fast answer. Tap once and the organiser sees it live, with your GPS location and the zone you're nearest to, resolved with the Haversine formula. Cooldown logic and a confirmation gate stop repeat taps from flooding the queue with the same person.
Live announcements
The organiser posts an update and every attendee's screen reflects it immediately, with no refresh and no polling.
Why Convex carried the build
Convex's live queries gave me real-time SOS and announcements without writing a single line of websocket code. useQuery re-renders on data change, so the real-time layer cost me almost nothing and I spent the hours on the interface instead. That's the specific reason this shipped in 3.5 hours instead of sitting half-finished.
Zero API keys, on purpose
A hackathon demo dies the moment someone hits a billing prompt, so every external dependency is free and keyless. Leaflet with OpenStreetMap tiles for maps, OSRM for pedestrian routing, Convex for the backend.
What I cut, deliberately
Crowd heatmaps. Accessibility-filtered routing. An AI concierge that answers "where's the nearest accessible restroom?" User auth. Multi-language support. In 3.5 hours you don't get to build everything — you get to figure out what removes the most friction for someone standing in that crowd, phone in hand, lost, and make sure that part just works.
Stack
Next.js 16, React 19, Convex, TypeScript, Tailwind CSS 4, Leaflet, OSRM, Vitest.