Building Gogomi: 2024 in Review
Previously, I shared my quest to walk all the streets of Vancouver. But behind those 800,000+ steps lies another story—one of late-night coding sessions, unexpected discoveries, and a tiny app that grew into something more.
Why Build Gogomi?
Picture this: you're out exploring Vancouver's streets, trying to remember which paths you've already wandered down and how much of each neighbourhood you've explored. That was me, trying to piece together my walking adventures using a mishmash of existing apps[1] and other tools[2], but none quite hit the mark.
I wanted something to track my progress street by street and buzz my wrist with encouragement whenever I explored new parts of neighbourhoods.




So, channelling that classic engineer™ trope, I started tinkering. The result was Gogomi: an app that takes my Apple Watch's workout route data, transforms it into a continuously growing map and helps me uncover unexplored corners of the city.
Behind the curtains, Gogomi is a carefully orchestrated chaos of SwiftUI modules, Python scripts and geospatial queries embodying a tiny helper on your phone that maps your walks[3] and occasionally goes like, "Hey, you explored so much more (+20%) of Mount Pleasant today, go you!"
The First Prototype
My first goal was simple: get all my past walks onto a map. With GPX files from my Apple Health export, I massaged and splayed them onto a Felt map. The result was not quite the clean result—my "walks" included accidental SkyTrain rides and mysterious teleportations from pausing and resuming on my watch. After some data cleaning, I finally had a proper map of my walks!


Still, I wanted something more dynamic to create a nice feedback loop: go outside ➜ record a walk ➜ get a notification with stats ➜ feel motivated to explore more. So I built a data pipeline[4] that automated mapping new walks, using Siri shortcuts to fetch updates about my latest adventures.
Later, I added OpenStreetMap road geometries to estimate neighbourhood coverage. While this worked for my walks, as others got interested, I realised it needed to be more polished.



Growing into an App
It was time to move beyond late-night tinkering sessions on my couch. Enter Atelier UBC—a coworking community where I worked on and demoed Gogomi every other Sunday. Nothing like showing your work to fellow builders to keep you accountable!



The growing interest from others finally pushed me to tackle iOS development, despite my initial resistance. Building this kind of mobile app wasn't exactly beginner-friendly—especially with rendering complex map features.
Meanwhile, I found myself drawing Burnaby's neighbourhood boundaries[5] by hand (because official data didn't exist) and redesigning a data system that grew...let's say "organically". Each new challenge pushed me deeper into unfamiliar territory.


Through iteration, my favourite feature emerged: highlighting unexplored roads in red, which made it so much easier to discover new paths while walking.
As Gogomi improved, friends started asking for theirs. But turning a single-user personal project into a shared tool meant rethinking everything—from user profiles to database design to removing hard-coded defaults 😅.

TestFlight became my best friend as I slowly introduced others to Gogomi. Despite some initial hiccups (like the app dramatically crashing when someone hadn't taken any walks yet—a clear edge case my walkative self hadn't considered), seeing people's excitement when their walks populated the map made it worthwhile.
The app's random post-walk notifications (written with template strings and
random.choice() ✨) brought extra joy to folk's urban adventures.



Shipping It: From Project to Product
I used GitHub's project board to focus on what mattered most. While park coverage notifications, discoverable notes, and other cool ideas tempted me, a friend's advice helped me avoid feature creep and just ship a usable app.

Early Gogomites had to jump through hoops to use Gogomi—installing another app just to avoid me writing a proper syncing system (I know, I know). Building a standalone sync engine took lots of iteration and patient testers. While it's not perfect, I've learned to embrace "good enough" over perfection.

The direct line to users brought plenty of feature requests ("Hey, you know what would be cool..."). Working with map interfaces taught me hard lessons about screen real estate—I ended up bloating the interface before user feedback helped me pare it back down.
The cleanup forced some needed code refactoring but made everything simpler. Sometimes you have to go backwards to move forward.

After setting up a simple promo website, I dove into the App Store submission process. I debated publishing under a corporation to keep my name private, but conversations with friends who'd published apps before convinced me to stop hesitating and just ship it (also, the yearly cost of having an inc. didn't make sense for something so early-stage).
Gogomi went live on the Canadian App Store a few hours later, Vancouver-only by design—I'm keeping the scope focused while I work out the kinks.

What's Next
I've kept promotion low-key while I enjoy my December break and find the right early users. But I can't help getting excited about a formal launch—seeing more folks discover their city with Gogomi!
That said I am also soberly aware that running a service means being responsible for other people's data and dealing with hosting costs, maintenance, and uptime—stuff I'm still contemplating.
I've also been thinking about making the technology fade into the background. Between checking directions and taking photos, I still find myself looking at my phone too much.
With AR and wearables evolving quickly, there are exciting possibilities for new form factors that could make Gogomi an even more natural walking companion—maybe something closer to having a friend tap your shoulder when you're near unexplored streets.


Looking Back, Walking Forward
Building Gogomi has been quite the journey—from late-night coding sessions on my couch to seeing other Gogomites explore the city. What started as a tool to track my walking quest turned into something bigger: a lesson in building in public, an adventure in full-stack development, and best of all, a companion helping others discover the joy of urban exploration. Here's to more adventures ahead, one step at a time 🚶🏿♂️