Why I Built It
Trip planning felt broken. I was switching between maps, notes, calendars, spreadsheets, Notion and photo folders just to plan and remember one journey. I wanted a privacy-first travel app that combined planning and journaling in one place. I wanted lots of emojis and colors coded activities.I wanted Hotels, flights, and activities alongside budgets, live notifications, polaroid photos, and cassette-style voice notes for journaling specific to a place.
How I Built It
Vuzo is my first iOS app and my first project in Compose Multiplatform (CMP). I used Kotlin Multiplatform for shared logic, Compose Multiplatform for UI, and bridged into Swift APIs for iOS-specific features like Live Activities. Offline storage is powered by Room Multiplatform. I designed playful animations — dropping polaroids, spinning cassette reels, path animations, many of which had never been done before in CMP.
What I Learned
I learned how to bridge Kotlin and Swift, how to think cross-platform while respecting each platform’s UX, and how to invent new animation patterns in CMP. Most importantly, I learned that cross-platform development is not just about sharing code .It’s about combining design, technology, and user needs into one cohesive experience.
Looking Back
Vuzo started as a way to make my own trips less messy, but it became much more. It is a personal milestone in shipping across platforms, designing experiences that feel playful, and solving a problem I deeply cared about. Looking back, the challenges were tough, but they pushed me to grow as a developer and gave me confidence to keep building ambitious products.
Built With
- cmp
- compose
- kmp
- kotlin
- ktor
- room
- swiftui


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