Inspiration
Generic meditation and wellness apps often feel static and impersonal. We listen to the same pre-recorded voices repeating the same scripts, regardless of what we are actually going through in that exact moment.
With recent breakthroughs in Generative AI, especially natural, emotionally nuanced, human-like speech synthesis—I realized audio talks could be personal, adaptive, and intimately close to the listener.
I envisioned Orbora: a mindfulness companion that creates bespoke guided meditations, breathwork, ASMR, and wisdom monologues on demand. To anchor this experience visually, I created the Orb an omnipresent living visual companion whose breath, color glow, and orbiting rings reflect your emotions, topics, and duration, creating a sense of calm and presence across the entire app.
What It Does
Orbora lets users generate personalized audio talks in seconds:
- Two Generation Paths: A peaceful Guided Flow (step-by-step questions where you hold the glowing Orb to generate) or a Quick Form for instant generation.
- AI Audio Engine: Gemini writes the script tailored to your context and intent, and Gemini TTS voices it with expressive, human-quality audio.
- Dual Library: A Wellness Journey featuring structured, progressive paths (Breath, ASMR, Wisdom, Meditation) with unlockable milestones, alongside a Personal Journey diary of all your generated sessions.
- Offline-First Playback: Talks and audio are cached locally with resume-playback position memory, 10s seek controls, an expandable full-screen player, and an adaptive docked mini-player.
- Fair & Sustainable Monetization: Powered by RevenueCat, featuring virtual currency (
TCRTalk Credits) and theAuraOrb Prosubscription.
How I Built It
- Kotlin Multiplatform (KMP) & Compose Multiplatform: A single shared codebase powers Android, iOS, and Wasm verification targets with strict Clean Architecture and MVVM.
- Native Audio Engines: Leveraged platform-native audio players (Media3 / ExoPlayer on Android and native media frameworks on iOS) with lock-screen controls and background audio playback.
- Backend on Google Cloud Run & Ktor: A lightweight, high-performance Ktor backend coordinating Vertex AI Gemini, Gemini TTS, Cloud Firestore, and Google Cloud Storage.
- Flexible In-App Purchases: Integrated subscriptions and consumable credit packs through RevenueCat, paired with custom credit calculation and server-side webhook reconciliation.
- Local Persistence: Room 3 KMP with bundled SQLite driver for structured data and DataStore for persistent preferences.
Challenges I Ran Into
As a solo developer, building and shipping this for the Ship-a-ton pushed me into unfamiliar territory:
- First-Time iOS Development: This was my first time releasing an iOS app. Bridging background audio playback, system interruptions, lock-screen media controls, and platform lifecycles with the shared multiplatform architecture was a steep learning curve.
- First-Time Subscription & In-App Purchases: Navigating store configurations for the first time required careful design. I had to cleanly separate sandbox testing from live production environments so internal testing could run smoothly without storefront rejections.
- Protecting the Backend & Managing AI Costs: Generative AI audio has real compute costs. To make sure the app remains financially sustainable without losing money on generation, I:
- Designed a clear unit-cost rule: ( \text{Cost} = 1 \text{ credit per started 30 seconds} ).
- Secured backend endpoints with cryptographic token verification and App Check.
- Added weekly usage caps and SHA-256 email fingerprinting to prevent alias abuse on free credits.
- Set up automated webhook listeners to instantly reconcile credits on refunds or cancellations.
- Handling Background App Exits During Generation: Since generating audio can take a little time, users might start a talk and switch apps. I had to ensure the backend generation and queue state kept running reliably without losing progress or charging the user twice.
- Balancing Onboarding: I wanted an onboarding tour that clearly taught the Orb mechanics and navigation without feeling heavy or getting in the way of listening.
- Focusing on the MVP: It was tempting to get lost in minor details or secondary features. Strictly prioritizing what mattered most was essential to shipping a rock-solid product on time.
- GDPR & Privacy Compliance: Built full account deletion that cascades across databases and cloud audio storage, backed by transparent privacy policies and data protection standards.
Accomplishments That I'm Proud Of
- Shipping to Both Stores: Taking an idea from zero to a live, production-grade app submitted to both Google Play (176+ countries) and the Apple App Store in time for the deadline.
- The Living Orb Companion: Crafting a custom-rendered visual identity that feels alive—breathing, glowing, and rotating in harmony with the session's emotional tone and length.
- Sustainable Multiplatform Monetization: Bringing a smooth subscription and virtual currency experience to life across both mobile platforms.
What I Learned
- How to architect and deliver a production-grade Kotlin Multiplatform app spanning Android and iOS.
- The intricacies of mobile monetization, store sandboxes, paywall flows, and webhook validation.
- How to model generative AI economics sustainably within consumer mobile apps.
- The discipline of cutting non-essential scope to deliver a cohesive MVP.
What's Next for Orbora
- Quick Anxiety Relief: A dedicated, one-tap instant grounding session for moments of acute stress or panic.
- Post-Session Conversations: An interactive, conversational reflection where you can talk with the companion about what was said, how you felt, and what you took away from the session.
- Multilingual Audio Generation: Expanding voice synthesis so users can generate personalized talks in multiple languages.
- Smart Completion Notifications: Background push alerts notifying listeners the moment their custom talk is ready.
- Curated Breathing Path: Releasing the dedicated 10-step breathwork journey with newly mastered audio.
Built With
- android
- cloud-run
- firebase
- gemini
- google-cloud
- ios
- jetpack-compose
- kmp
- koin
- kotlin
- ktor
- revenuecat
- tts
- vertex-ai

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