A cleaner, faster way to ride Barcelona's Bicing bike-share.
Unofficial companion app for Barcelona's Bicing system — live station availability, route planning, QR unlock, and ride tracking in one calm, modern interface.
- 📍 Live map of every Bicing station with real-time bike, e-bike, and free-dock counts
- 🧭 Route planning & turn-by-turn navigation from anywhere to any station, on foot or by bike
- 📷 QR unlock to grab a bike straight from the app
- ⏱ Ride tracking with live cost estimates and pricing-bracket warnings before you get charged more
- ⭐ Favorite stations and dock alerts for the places you actually use
- 📊 Trip history and monthly ride stats
- 🌍 Localized in English, Spanish, and Catalan
apps/mobile Expo / React Native app (iOS + Android)
apps/web Next.js landing page
packages/shared Shared marketing/product content used by both apps
docs/ API notes and screenshots
Expo (React Native, New Architecture) · TypeScript · NativeWind (Tailwind) · @gorhom/bottom-sheet · expo-maps · react-native-reanimated · react-i18next
The app talks directly to Barcelona's Bicing/SMOU backend — see docs/smou-api.md for the reverse-engineered API notes.
pnpm install
cp apps/mobile/.env.example apps/mobile/.env # fill in the values, see below
pnpm dev:mobile # starts the Expo dev server
pnpm dev:web # starts the Next.js landing pageapps/mobile/.env needs:
| Variable | What it's for |
|---|---|
GOOGLE_MAPS_API_KEY |
Android Maps SDK key, injected at build time |
EXPO_PUBLIC_SMOU_CLIENT_ID |
SMOU app OAuth client id |
EXPO_PUBLIC_SMOU_CLIENT_SECRET |
SMOU app OAuth client secret |
EXPO_PUBLIC_BICING_API_KEY |
Bicing station-data API key |
This is an independent, unofficial project built by reverse-engineering the public SMOU/Bicing app for personal and educational use. It isn't affiliated with, endorsed by, or supported by Barcelona de Serveis Municipals (BSM) or Bicing.