← All work

VoxPair

Mobile application
Product development

A mobile riding companion for planning routes, recording journeys, and keeping a motorcycle crew connected.

VoxPair — VoxPair’s local web preview. Native features are built for Android and iOS.

VoxPair’s local web preview. Native features are built for Android and iOS.

01 / The idea

Good roads. Better company.

VoxPair is a motorcycle riding companion for Android and iOS. It brings ride planning, navigation, saved journeys, rider profiles, and group coordination into one focused interface.

A group ride involves more than choosing a destination. Riders need to agree on a meeting point, prepare a route, see who is ready, and stay coordinated along the way. I wanted those decisions to feel like one journey, while keeping personal recording, shared location and voice separate choices.

My contribution

Product design and application development, from the onboarding flow and riding interface to the systems supporting group journeys and voice communication.

Built with

  • React Native
  • Expo
  • TypeScript
  • Node.js
  • WebRTC
  • MapLibre
  • SQLite

02 / The process

From planning to riding together.

  1. Start with a rider and a bike

    Onboarding collects a rider name, headset and bike. The bike editor includes make, model, style and colour; the profile then brings the selected bike, ride totals and preparation tools together. The screenshots use a fictional rider with an empty history so the interface explains itself without borrowing someone’s private activity.

  2. Make a plan before making a group

    The planner asks for group or solo, a meeting point, a destination and a departure time. Name, notes, stops, pace and visibility sit in More options. Keeping these choices separate matters: choosing a relaxed pace is a shared expectation, while adding a stop changes the itinerary. Private visibility controls who can join; it is not the same as switching on location sharing.

  3. Give preparation its own place

    The daily checklist covers the bike, fuel or charge, gear, phone, headset and agreed plan. I kept it personal and explicit, with a reset each day. It is a reminder, not an automatic safety check. Saved routes and ride history also have their own roles: one prepares a future journey, while the other records a journey already taken.

  4. Connect the route to persistent data

    React Native and Expo provide the application foundation. MapLibre and Leaflet support the map experience, with OSRM supplying road directions. GPS samples are filtered before they contribute to recorded distance, and a local SQLite journal preserves the ride track so an interrupted session can be recovered. The Node.js API handles shared plans and group coordination.

  5. Keep voice and sharing deliberate

    Group membership, location sharing and joining voice are distinct actions. The current implementation uses audio-only WebRTC with authenticated signaling; voice joins muted. Host controls manage invitations and itinerary changes, while personal recording can remain local. The screens above explain setup and preparation. They do not demonstrate a live call or a recorded outdoor ride.

03 / The result

What it brings together.

VoxPair is a mobile pilot that connects the practical stages of riding: make a profile, agree on a plan, prepare, then use the riding tools. The local browser preview demonstrates the app interface and its planning choices. Outdoor GPS, Bluetooth audio, background behaviour and cross-network group voice still need physical-device validation before broader release.

  • Solo and group ride planning
  • Maps, directions, and an opt-in location-sharing flow
  • Rider profiles, bikes, and saved ride history

What these captures show

Four real app screens from an isolated local browser session, using a fictional rider and a fresh local backend. No real contacts, precise location, invitations, microphone recording or third-party calls were used.

What still needs field testing

Browser screenshots do not establish Android or iOS background behaviour, Bluetooth headset reliability, outdoor GPS quality or live group-call performance. Routing uses general driving directions, without motorcycle-specific routing, live traffic or offline maps.

Next project

ILikePDF