Tours that start on time, signal or none
How Context Travel checks guests in for walking tours even when the guide is standing in a stairwell or a centuries-old basement with no signal.
- Industry
- Cultural and walking tours
- Platforms
- iOS and Android
- Stack
- Hotwire Native plus offline
01 / Challenge
Guides arrived at venues with no signal
A Context Travel guide shows up to a museum, a cathedral, or a back-alley meeting point and starts checking guests in. Half the time, there's no cell service. Stone walls eat the signal, the basement has none, and the guide can't fetch the ticket list or scan QR codes from a server that isn't reachable.
The web-driven version of the app worked perfectly the moment the guide was on Wi-Fi at the office. It didn't work at all in the moment that actually mattered.
02 / Approach
Native code for offline, Hotwire Native for the rest
Most of Context Travel's mobile app is Hotwire Native rendering the same Rails screens the staff already use. The check-in flow isn't. I built native iOS and Android screens that pull the day's tours and tickets onto the device ahead of time, scan QR codes locally, mark guests as checked in offline, and sync everything back to Rails the moment service returns.
- Tickets and rosters cached on device the night before each tour.
- QR code scanning and check-in handled natively, no round-trip required.
- Background sync to the Rails app when the device picks up service again.
- Everything else (rosters, tour details, settings) stayed in Rails so the team ships it without me.
03 / Result
Tours on time whether the guide has five bars or none
Tours run on time whether the guide has five bars or none. Guides stopped relying on printed ticket lists and the office stopped getting frantic messages from venues with bad signal.
The native code stayed small. Two screens, well tested, doing the one thing the web couldn't. The rest of the app continues to ship as Rails changes, the way Context Travel already worked.
“A 2.5-developer team shipping mobile experiences this good while maintaining a 140K LOC Rails monolith is incredible. Joe helped us make it real.”
Offline, camera, biometrics, push. Tell me where your app needs to go native, and we'll figure out the smallest amount of code that gets you there.