Inspiration
My friends, family, and I love cycling together. We also like a little competition, especially on routes we already know. I wanted to turn a familiar route into a reason to go out again: try to beat your own time, challenge a friend, or invite the whole group.
MashON began with that idea. Building it also gave me a reason to learn how to make my first iOS app. As we tested it together, the idea grew beyond cycling to include running and walking. During one of our test rides, my 12-year-old son suggested a wind-drag tool. We built and tested it, and it became one of my favorite features.
What it does
MashON makes outdoor activities more social and more motivating. Record a route, then use a saved activity as a Ghost to challenge your previous performance or invite someone else to try it. You can also start a live group Mash and see your buddies’ positions on the map, heart rates, speeds, and other activity metrics as you move together.
The iPhone app handles routes, challenges, teams, and activity history. Apple Watch puts activity metrics, ghost progress, and route guidance on your wrist. The aim is simple: make it easier to get outside together and give everyone a personal goal to chase.
How we built it
I built MashON in SwiftUI for iPhone and Apple Watch. RevenueCat manages MashON Pro purchases and entitlements. On AWS, Cognito handles accounts, AppSync connects shared and live features, DynamoDB stores app records, and encrypted S3 stores route files. AppSync uses real-time WebSocket connections to keep participants’ activity data in sync, so friends can see updates from one another’s devices during a Mash. That data travels through authenticated, encrypted connections rather than directly between devices. For riders close to one another, MashON also uses Apple’s Ultra Wideband technology which allows for more accurate location determination than GPS.
I used AI throughout development to explore unfamiliar tools and turn ideas into working prototypes. Each prototype still needed to be tested on devices, understood, corrected, and improved. Building an activity app taught me quickly that a screen looking right is not the same as it working during a real ride or run.
Challenges we ran into
Outdoor activities expose problems that are easy to miss indoors. Location changes continuously, connections can drop, and a useful watch screen must be readable at a glance. Keeping the iPhone and Apple Watch in step took repeated testing.
Account recovery and challenges also needed careful work. A person should be able to sign back in and see their teams and account information, and a challenge result should reflect the route they actually completed. Reports from testers helped us find and fix issues that our own testing had missed.
Accomplishments that we're proud of
MashON went from an idea discussed on rides to an app available on the App Store. I’m proud that people can now record an activity, return to it as a ghost, challenge a friend, and bring their team together for a live Mash.
I’m equally proud of the process behind it. Friends and our cycling team tried the app, discussed ideas with me, and told me what was confusing or missing. TestFlight bug and crash reports gave us concrete issues to investigate and fix. Their involvement made MashON more useful than the version I could have designed alone.
What we learned
AI helped me start building before I knew every part of iOS development, but shipping required much more than generating code. I learned to test real movement, recover from failed connections, check what happens after a user signs in again, and listen when testers experienced the app differently from how I expected.
The most valuable question became: would this make someone want to go out for another ride, run, or walk? When the answer was unclear, I went back to the experience and kept improving it.
What's next
I want to keep testing MashON with more groups, make challenges and live Mashes easier to join, and improve the iPhone and Apple Watch experience based on what people encounter outdoors. I’m also working toward an Android version.
We want to connect MashON riders with local bike shops. Shops will be able to apply as partners, list services such as repairs, maintenance, and bike fitting, and offer a discount to MashON users. After we review and approve a shop, riders will be able to discover it on the map. Shops could also display MashON materials in-store, helping more local riders find the app and ride together. We plan to start with a small group of shops, learn what works for both riders and partners, and expand from there.
The result I hope for most is simple: someone gets outside because a friend sent them a Mash invite, or challenges themselves to beat a previous activity with Ghost.


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