Inspiration

The inspiration for MyDiaryAI came from a personal struggle. I have been using a physical hardcopy diary for few years now and put my thoughts on it regularly. But keeping a diary with me all the time during travel etc becomes hard, so I always had this idea to make an app around it. I checked other apps and there were hard to use and didn't match my style. That's when MyDiary AI was born. MyDiary AI is a voice-first diary that removes all friction from capturing your thoughts, powered by AI to make the experience magical and comes with a totally minimal clean UX.

What it does

MyDiaryAI is a voice-first journaling app that transforms the way people capture their thoughts and memories. Here's what makes it special:

  • 🎙️ One-Tap Voice Recording: Press the mic button and start talking. No more staring at a blank screen.
  • 🤖 AI Transcription: Automatically converts your voice to text, so you get both audio and text versions of your entries.
  • ✨ AI-Powered Suggestions: Get personalized writing prompts when you're stuck, helping you build a consistent journaling habit.
  • 🎨 Hand-Drawn UI: A unique "wobbly" aesthetic with hand-drawn borders and animations that makes the app feel warm and personal, not cold and digital.
  • ☁️ Cloud Sync: Your entries seamlessly sync across devices, so you never lose a memory.
  • 📴 Offline-First: Full functionality works without internet—record, transcribe locally, and sync when online.
  • 📊 Progress Tracking: Visualize your journaling streaks and statistics to stay motivated.

How we built it

MyDiaryAI is built with modern Android technologies and a focus on quality:

  • Kotlin & Jetpack Compose: 100% native Android with declarative UI for smooth, reactive experiences
  • MVVM Architecture: Clean separation of concerns with ViewModels, Repositories, and Room database
  • RevenueCat SDK: Complete subscription management with Paywalls UI, subscription status tracking, trial management, and grace period handling
  • Supabase: Authentication (Google OAuth with PKCE), cloud database (Postgrest), and file storage for audio recordings
  • Room Database: Offline-first approach with local storage and bidirectional sync
  • ElevenLabs STT API: High-quality speech-to-text transcription
  • Firebase: Analytics, Crashlytics, and performance monitoring
  • Material Design 3: Dynamic theming with custom hand-drawn aesthetic
  • Media3 (ExoPlayer): Professional-grade audio playback

Challenges we ran into

1. RevenueCat Testing Complexity Google Play's test subscriptions auto-cancel after 6-7 renewal cycles (every 5 minutes for monthly subs), which initially confused our testing. We learned to embrace this behavior and created a comprehensive testing strategy with license testers vs. production users. Also, subscription management was a bit hard to figure out, specially cross-sync between multiple devices.

2. Voice Transcription Latency Initial implementations of ElevenLabs STT had noticeable delays. We solved this by implementing a queue-based system with proper loading states and optimistic UI updates, making the experience feel instant even when processing takes a few seconds.

3. Offline-First Architecture Building true offline capability while maintaining cloud sync was complex. We implemented a robust conflict resolution strategy with Room database as the single source of truth and Supabase for backup/sync. The sync logic handles edge cases like partial uploads, network interruptions, and concurrent edits.

4. Hand-Drawn UI Performance Our custom wobbly borders initially caused performance issues due to complex path calculations. We optimized by caching path data, using remember effectively, and minimizing recompositions in Compose.

5. Subscription State Management Managing different subscription states (trial, active, expired, lifetime, grace period) across the app required careful state management. We created a centralized SubscriptionManager with reactive Flow-based state updates that propagate throughout the app.

6. Google Play 14-Day Testing Rule Understanding and navigating Google Play's requirement that new apps spend 14 days in testing before production release was crucial for our launch timeline. We planned our Closed Testing track carefully to meet Shipathon deadlines.

Accomplishments that we're proud of

🎨 Unique Design System: Created a completely custom hand-drawn UI aesthetic that makes digital journaling feel personal and warm. Every element from wobbly borders to animated buttons contributes to an emotional connection with users.

🏗️ Solid Architecture: Built a production-ready app with proper MVVM architecture, offline-first capability, comprehensive error handling, and a 100% Kotlin/Compose codebase that's maintainable and scalable.

💰 Seamless Monetization: Implemented a complete subscription system with RevenueCat that includes paywalls, trial management, multiple access types, and subscription management, all with a smooth user experience.

🤖 AI Integration: Successfully integrated multiple AI services (ElevenLabs for transcription, OpenRouter for content suggestions) that work seamlessly together to enhance the journaling experience.

☁️ Cloud Sync: Built a robust bidirectional sync system that handles offline usage, conflict resolution, and large audio files across Supabase and Room database.

🎯 Complete Feature Set: Shipped a fully-featured app with onboarding, authentication, recording, transcription, cloud sync, subscriptions, profile management, export, credits, and more, all within the Shipathon timeline.

What we learned

Technical Learnings:

  • RevenueCat Best Practices: Learned how to properly implement paywalls, handle subscription state changes, manage trials, and track conversion metrics. The SDK documentation and community were invaluable.
  • Jetpack Compose Optimization: Mastered state hoisting, minimizing recomposition, and building performant custom UI components in Compose.
  • Offline-First Architecture: Discovered the complexity and power of building apps that work seamlessly offline, including sync strategies, conflict resolution, and data integrity.
  • Audio Processing: Learned about audio recording formats, compression, streaming uploads to cloud storage, and playback with Media3.

Product Learnings:

  • Monetization Psychology: Understanding the importance of trial length, pricing psychology, and clear value communication in converting free users to paid subscribers.
  • Voice-First UX: Discovered that voice interfaces need different design patterns—larger tap targets, clear recording states, and confidence-building visual feedback.
  • Journaling Habits: Learned that reducing friction is more important than adding features. Users need one-tap access to recording, not 10 different journaling templates.

Process Learnings:

  • Ship Fast, Iterate: The Shipathon deadline forced us to focus on core features and ship quickly. We learned to prioritize ruthlessly and cut nice-to-have features.
  • Testing Subscriptions: Gained deep knowledge of Google Play's testing requirements, license testers, and the 14-day testing rule for new apps.
  • Analytics from Day 1: Implementing comprehensive analytics early pays dividends. We could see exactly where users dropped off and optimize accordingly.

What's next for MyDiary AI - Voice Journal

Short-term (Next 3 months):

  • 📱 iOS Version: Expand to iOS using Kotlin Multiplatform to share business logic across platforms
  • 🎙️ Enhanced AI: Add sentiment analysis, mood tracking, and personalized insights based on journaling patterns
  • 🌍 Localization: Add support for multiple languages (Spanish, French, German, Hindi) for global reach
  • 📊 Advanced Analytics: Add more detailed statistics, word clouds, and journaling streak features

Medium-term (6 months):

  • 🤝 Social Features: Optional sharing of journal entries with trusted friends or therapists (with privacy controls)
  • 🎨 Themes & Customization: More UI themes, custom colors, and personalization options
  • 📝 Rich Text Editor: Add formatting options for manual text entries alongside voice recordings
  • 🔍 Smart Search: AI-powered search that understands context, not just keywords

Long-term Vision:

  • 📚 Memory Books: Generate beautiful printed books from journal entries with photos and memories
  • 🌐 Web App: Cross-platform web version with full sync across desktop, tablet, and mobile
  • 🤖 AI Journal Companion: An AI that learns from your entries and can help you reflect, set goals, and track personal growth over time

Community & Growth:

  • Build a community of mindful journalers
  • Create content about journaling benefits and techniques
  • Expand monetization with B2B offerings (corporate wellness, therapy integrations)

MyDiaryAI is just the beginning. Our vision is to make journaling as natural as thinking—and help millions of people capture their stories, understand themselves better, and live more mindfully. 🚀

Built With

Share this project:

Updates

Submission history