Inspiration
My boyfriend and I are in a long distance relationship this summer and we still want to bond with each other through walking and talking with each other too. Both of us are computer science students in the same university and this is the first summer that we won’t be seeing each other for months till the next semester starts. One of our favorite bonding activities is just walking together holding hands. Any sort of activity that involves us walking or running wherever is such a breather for us in such a stressful world. So we devised a project that would make us feel like we can feel each other's presence through physical activity.
What it does
BOLT is a real-time group fitness tracking app for runners that do not want to run alone, inspired by Strava. Records current GPS position in real time and transmits it to all members of the group, thus allowing the crew to see the other members' location on a real-time map. Not only can you track, you can create and join groups, establish goals together, and compare progress side by side on BOLT. Each run is recorded with your distance, pace and duration so you and your teammates have a complete history of your team's progression over time.
How we built it
BOLT is created on React Native (Expo) with NativeWind for styling, it's targeting Android. Each runner's current location is displayed as a marker on the map and a trail is drawn behind them as a GeoJSON line layer, powered by MapLibre. Expo-location is used with watchPositionAsync at 1m intervals, and distance is computed client side in a Haversine manner, which is measured by speed and accuracy. The real-time multiplayer layer is powered by Supabase Broadcast, WebSocket-powered pub/sub system that delivers GPS coordinates peer-to-peer via shared session channel without database touch. This will ensure that the experience is fast and lightweight as it is live. In the case of PostgreSQL, it is only written to once per run, which happens when the session is ended and the final summary is written. The UI is designed in Figma which is not implemented.
Challenges we ran into
All of the languages that we’ve used here are very new to us. Although we have an idea and its frameworks done in Figma where we’ve done all the interfaces. It tools us quite a while executing this project into a working application since we were learning while building this project.
Accomplishments that we're proud of
It takes a lot of effort to learn a language/framework, and it takes a lot of effort to start and commit to a project, doing both of those simultaneously for the both of us is something that we’re proud of. Though we only did a limited amount of features for this project, we both contributed to its mockup UI design, frontend coding, and system design. This is the first of many projects we’ll make together as a couple who met through computer science, and we’re happy that we finally started our project journey.
What we learned
In terms of technical knowledge, we learned a new framework—React Native, or React.js generally, and a new BaaS, Supabase in creating a mobile app. In a more general sense, we learned what it means to lead a part of a large project, one of us led the UI, and the other the backend, but both contributed to the figma project and the actual repository.
What's next for BOLT
BOLT is just beginning. The following is a list of the objectives on the roadmap:
- Authentication & Profiles: Replace the hardcoded user IDs with real identity throughout the app with full user accounts including username, profile photo, date joined, and personal stats.
- Home, Community, Progress & Profile Screens: Interfaces are currently in place, but the functionality is still open to wiring up. Next: turning all screens to buttons, navigation flows and actual content.
- Community Page: A social component in which users can find friends, join groups and exchange messages, similar to group chats linked to your running team.
- Progress Page: An activity streak tracker like GitHub to see your consistency over time, running history daily, weekly and even monthly, and collaborative stats with your group.
- Live Session Spectating: In addition to being able to run with you, BOLT will allow your friends and followers to view your live session, and see your marker moving on the map, even if they're not running. And if they are, you will be able to see also their live location like user markers on the map.
- Goal setting and Competitive Analysis: Groups will be able to establish a common distance or pace target, and compare them side by side to ensure everyone is aware and will make an effort to match or beat it (if desired).
- Cross-Platform: Currently Android-first. Support for iOS is next.
Built With
- nativewind
- postgresql
- react-native
- supabase


Log in or sign up for Devpost to join the conversation.