💡 Inspiration

We love traveling to Thailand, but we realized that planning a trip always involves the exact same friction: "How many days should we stay in Chiang Mai?" "Is it too rushed to do Phuket and Krabi in one week?" "How do we fit our budget?" We wanted an app that doesn't just show you generic lists of tourist traps, but actually acts as a personal travel agent—learning your preferences and generating a realistic, day-by-day itinerary.

⚙️ What it does

Wandravel takes the mental load out of travel planning. Users simply answer a beautiful, 4-step wizard about their upcoming trip (Destination, Dates, Who they are traveling with, Budget, and Travel Style).

Using the Gemini AI API, Wandravel instantly generates a comprehensive, day-by-day itinerary. The itinerary is structured logically, splitting days into Morning, Afternoon, and Evening activities, ensuring travel times and budget constraints are respected.

Users can save their trips to their local device, manage their upcoming plans, and explore curated destinations through an immersive, native UI.

🛠️ How we built it

Wandravel is built entirely using Kotlin Multiplatform (KMP) and Compose Multiplatform, allowing us to share 100% of our business logic and UI code across both iOS and Android while maintaining native performance.

  • UI & Architecture: Compose Multiplatform, using Clean Architecture and the MVI pattern to manage state predictably.
  • Dependency Injection: Koin (cross-platform).
  • Local Storage: SQLDelight for fast, offline-first trip saving.
  • AI Engine: Google's Gemini API, utilizing structured prompt engineering to guarantee the AI returns consistently parsable JSON itineraries.
  • Monetization: RevenueCat SDK. We implemented RevenueCat's native Paywalls to seamlessly offer Monthly and Annual subscription plans. RevenueCat handles the entire purchase flow, entitlement granting, and cross-platform syncing with zero backend required from us.

🚧 Challenges we ran into

  • Structured AI Outputs: Getting an LLM to consistently output nested, structured JSON for a complex itinerary was tough. We had to heavily refine our prompts and implement robust error-handling and parsing in Kotlin to ensure the UI never crashes on bad AI data.
  • Cross-Platform Nuances: While Compose Multiplatform is incredible, handling platform-specific quirks (like native safe areas, system bar styling, and permissions) required writing careful expect/actual implementations.
  • Store Submission Hurdles: Navigating the new 2024 Google Play API access rules and Apple's strict requirements for first-time auto-renewable subscriptions was a maze, but RevenueCat's sandbox environment made testing the actual payment logic a breeze.

🏆 Accomplishments that we're proud of

  • We successfully shipped a polished, production-ready app to both the App Store and Google Play simultaneously from a single shared codebase.
  • The UI feels incredibly fluid and native on both platforms, proving that Compose Multiplatform is ready for prime time.
  • We integrated RevenueCat and had a fully functioning, beautiful paywall running on two platforms in a matter of hours.

📚 What we learned

We learned the massive power of the KMP ecosystem. The ability to write our data layer, network calls to Gemini, and our entire RevenueCat purchase logic once in Kotlin, and have it compile natively for iOS and Android, felt like a superpower.

🚀 What's next for Wandravel

  • Collaborative Planning: Allowing users to invite friends and edit itineraries together in real-time.
  • Map Integration: Showing a visual map of the day's route to minimize travel time between AI-suggested activities.

🎁 Prize Categories We Are Targeting:

  • Ship Kotlin Everywhere (JetBrains): Wandravel is a flagship example of a polished, production-ready app built entirely in Kotlin Multiplatform and Compose Multiplatform for both iOS and Android.
  • RevenueCat Design Award: We poured our hearts into the fluid animations, clean typography, and immersive destination imagery.
  • HAMM Award: We utilize RevenueCat to directly drive our Monthly and Annual recurring revenue.

🧪 Testing Instructions (For Judges)

We are so excited for you to try Wandravel! Since generating AI trips requires server costs, saving multiple trips is a premium feature.

To bypass the Paywall and unlock Wandravel Premium: Please use our custom promo code SHIPATON26 to get 1 month completely free (you will not be charged).

(Once redeemed, simply open the app, click "Generate Plan", and the app will instantly recognize your Premium entitlement!)

Built With

  • android
  • compose-multiplatform
  • gemini-api
  • ios
  • koin
  • kotlin
  • kotlin-multiplatform
  • material-design-3
  • revenuecat
  • sqldelight
Share this project:

Updates

Submission history