The brief
What needed solving
Someone travelling or between memberships wants a gym they can walk into today — but gym websites are built for long-term members, not drop-in visitors. Guest Pass had to answer three questions in one screen: what is near me, will they let me in, and how do I get there.
Approach
How it was built
01Location as the first interaction
The map and the result list are two views of the same query, kept in sync in both directions: panning the map updates the list, selecting a result moves the map. Location permission is requested in context — after the user has expressed intent to search nearby — with a manual search fallback that keeps the product fully usable when permission is denied.
02Two audiences, one product
Members and gym owners want opposite things from the same platform. Each got its own entry path and messaging while sharing the underlying components, so the supply side of the marketplace is a first-class surface rather than a footer link.
03Directions as an endpoint, not a feature list
Every result leads somewhere concrete: distance from the user's current position and turn-by-turn directions. The interface is built around completing that journey rather than around browsing for its own sake.
Scope
What shipped
- Gym search with live map and list views kept in sync
- Nearby results derived from the browser Geolocation API
- Turn-by-turn directions from the user's current position
- Dedicated gym-owner onboarding path
- REST-driven gym profiles with details and availability
- Responsive layout tuned for on-the-move phone use
Engineering notes
The hard parts
Challenge
Geolocation is permission-gated, frequently denied, and can be slow or inaccurate — building the core flow on the assumption that it works is a guaranteed dead end for a share of users.
Solution
Location is treated as an enhancement, not a requirement: the permission prompt is asked in context, and a manual location search covers denial, timeout and low-accuracy results so the product never reaches a state where nothing can be done.
Challenge
Map rendering with many markers competes directly with scroll and interaction performance on mobile hardware.
Solution
Marker rendering is bounded to the visible viewport with debounced map events, so panning stays responsive instead of re-rendering the full result set on every frame.
Outcome
Where it landed
- 01Live at yourguestpass.com serving both members and gym owners
- 02A discovery flow that works end to end — search, locate, route — on a phone in the street
- 03Graceful behaviour when location access is denied, rather than a broken core feature
