Inspiration
The Bicycle Kitchen has spent over two decades in East Hollywood teaching Angelenos how to build and repair their own bikes — a beautifully hands-on, community-run space where no one is turned away for lack of funds.
However, LA is a hard city to ride in for the first time. The teaching ends right when the riding begins. We wanted to build the part that comes next. Not a fitness tracker, not another Strava — a confidence-building companion that picks up where the Kitchen leaves off and treats new riders the same way the Kitchen does: patiently, accessibly, and without assuming you already know what you're doing.
What it does
Bicycle Pantry is a beginner-first riding companion for new LA cyclists. It's organized around four ideas:
Plan. Riders get route suggestions filtered by what actually matters when you're starting out — bike lane coverage, lighting, traffic stress, elevation, neighborhood. Routes are presented as "recipes" with ingredients (what to bring), steps (the path), and notes (community ratings on safety, beginner-friendliness, and scenery).
Ride. Turn-by-turn guidance with audio cues that announce when protected bike lanes start and end. Riders can drop hazard pins for glass, potholes, or sketchy intersections, which decay over time so the map stays current. A one-tap "route me to the Kitchen" button is always available.
Reflect. Post-ride, riders get a clean summary and rate the route on a structured rubric. Those ratings feed back into the public score, so the map gets smarter the more it's used.
Learn. A bike anatomy explorer, short safety lessons (signaling, door zones, taking the lane), and a direct line to the Kitchen — hours, workshops, the FTWNB session, donations, volunteer signup. The app is bilingual in English and Spanish from day one, because so is La Bicicocina.
How we built it
We built the app in React Native for cross-platform iOS and Android, with Supabase handling auth, the Postgres database, and storage for user-submitted route data and hazard pins. For mapping and routing, we layered our beginner-friendliness scoring on top of publicly available LA City and Metro bike lane GeoJSON, so our route quality scores are grounded in real civic infrastructure data rather than guesswork. Route segments are scored on bike lane coverage, intersection density, lighting, and grade, with community ratings re-weighting the score as more riders contribute. Offline map caching means routes stay accessible when signal drops mid-ride. The Bicycle Kitchen integration pulls live hours and workshop calendar info so the app stays in sync with the actual space.
Challenges we ran into
The hardest problem actually wasn't technical, it was scoping. Our initial whiteboard had something like twenty-five features on it, and we had to be ruthless about what served the mission and what was just cool.
Accomplishments that we're proud of
We're proud that the app feels like it belongs to the Bicycle Kitchen rather than to us. The voice, the bilingual framing, the kitchen-extension naming, the route-as-recipe metaphor; all of it points back at the org instead of away from it :)
And on the technical side: grounding our route scoring in real LA bike infrastructure GeoJSON — rather than hand-curating or hallucinating — means the app works the moment it launches, not after months of user data accumulates.
What we learned
We also learned that civic data is more available and more useful than we expected. LA publishes a lot — bike lanes, infrastructure, lighting in some areas — and a hackathon project that pulls real public data feels meaningfully more substantial than one built on mock JSON.
What's next for Bicycle Pantry
The most exciting next step is the one closest to the Kitchen itself: a "Ride with a Cook" feature where Kitchen volunteers lead scheduled group rides leaving from 4429 Fountain. It turns the app into a literal extension of the physical space.
Built With
- expo.io
- la-311
- la-metro-bike-lanes
- mapbox
- react-native
- supabase
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.