Full-Stack Apps· Pedl · pedlmaps.com

Citi Bike Trip Planner

Visit pedlmaps.com ↗
The Problem

The official Citi Bike app tells you where bikes are. It doesn’t tell you whether your trip will actually work: whether the station near you will still have a bike by the time you walk there, or whether the dock near your destination will have room when you arrive. Planning a real door-to-door trip meant checking the map, guessing, and sometimes walking to an empty rack or a full dock anyway. That was the gap.

What I Did

I built a cross-platform trip planner on top of Citi Bike’s live station feed that does the reasoning a rider would do by hand: given a start and end point, it evaluates several nearby stations at each end, accounts for the walk to get there, the ride, and the walk from the dock, and picks the pair that’s fastest and least likely to leave you stranded, penalizing candidates low on bikes or docks rather than just picking the closest. It supports an optional stop with drag-to-reorder, and speaks turn-by-turn directions out loud so you can ride with your phone in your pocket.

The harder problem was making voice nav trustworthy hands-free. It runs as a background location task so it keeps talking with the screen off, picks the best installed on-device voice (falling back to a pre-cached cloud voice), and decides when to reroute by reasoning about lateral offset from the route line and heading over time, rather than distance from the nearest point, so it doesn’t false-positive on GPS noise or a rider legitimately on a parallel street.

The live map (station colors, bike-type filter, saved home/work) runs identically on iOS, Android, and web from one codebase. Currently in TestFlight beta.

Pedl trip planner: station selection and route Pedl turn-by-turn voice navigation Pedl live station map: classic bikes Pedl live station map: e-bikes
Stack
Expo / React Native
Cross-platform app; one codebase for iOS, Android, and web. Map components are platform-split: react-native-maps on native, Leaflet on web.
Citi Bike GBFS feed
Public live station data (bikes, docks, e-bike counts) polled directly, no API key required.
Google Maps APIs
Directions, Distance Matrix, and Geocoding for walking/cycling routes and turn-by-turn maneuvers; OpenRouteService as a free fallback provider for web.
expo-location + expo-task-manager
Background GPS task that keeps voice guidance running with the screen off, the core requirement for hands-free navigation.
Custom map-matching
Reroute logic built from scratch; reasons about lateral offset from the route line plus heading over time, rejecting GPS noise instead of triggering on raw nearest-point distance.
expo-speech + Google Cloud TTS
Prefers an installed on-device Enhanced/Premium voice for fully offline guidance; falls back to a pre-cached Neural2 cloud voice.
AsyncStorage
Persists saved places (home/work) and trip history across sessions.
Visit pedlmaps.com ↗ ← All work