Project Story: Building Stoira - An Audio OTT Platform
Inspiration
The idea for Stoira came from my passion for storytelling and audio content. With the rising popularity of podcasts, audiobooks, and other audio-based platforms, I wanted to create a unique space for immersive audio stories. I was inspired by platforms like Storytel, but I felt there was room to offer a more tailored, story-centric experience, where users could discover diverse voices and captivating narratives.
What I Learned
Through this journey of building Stoira, I learned a great deal about:
- User experience design for audio platforms, focusing on accessibility and simplicity.
- Serverless architectures, especially utilizing MongoDB Atlas and Google Cloud for scalability and efficient data handling.
- Managing complex React and React Native frontends, where a smooth user interface and experience are paramount, especially with multimedia content.
- Monetization models in OTT platforms, including subscription plans, free trials, and promotional campaigns.
- The importance of managing content filters and ensuring that users, especially children, access age-appropriate content.
How I Built Stoira
Technology Stack:
- Frontend: I used React Native for the mobile application and ReactJS for the web interface. I chose UniStyle for a clean, component-based design system and TypeScript for type safety across both platforms.
- Backend: I built the backend using MongoDB Atlas, leveraging its App Services for building custom functions and managing endpoints. For media storage and processing, I integrated Google Cloud Storage.
- Audio Processing: To handle the upload, conversion, and storage of audio files, I used Google Cloud Functions along with the Sharp library for image processing.
Features:
- Personalized Experience: Users can create accounts and subscribe to plans. Based on preferences, the platform personalizes content recommendations.
- Comic Mode: An interactive mode designed for both children and adults, making storytelling fun and visually engaging.
- Content Filters: I implemented content filters, such as “Kids Mode,” to restrict explicit content and ensure a safe experience for younger audiences.
- Subscription Plans: Different plans with options for a free trial, allowing users to explore the platform before committing.
Challenges I Faced:
- Serverless Architecture: Initially, I faced issues with syncing data between MongoDB Atlas functions and Google Cloud Storage, especially while handling large files and multipart form data. After extensive debugging and exploring different libraries like Busboy, I found alternatives to handle file uploads more efficiently.
- Data Sync Issues: Handling real-time data synchronization between collections like
Category,Story,Chapter, andAudiopresented several challenges. The sync betweenChapterandAudiocollections was particularly problematic due to file path formatting and thumbnail management. I eventually solved this by refining the collection structure and enforcing better data validation. - Subscription Model: Implementing a flexible subscription model, especially with the inclusion of free trials, gift cards, and various pricing tiers, required detailed planning and testing to ensure users could switch between plans seamlessly.
- Handling Diverse Audio Content: Managing different audio formats, ensuring smooth streaming, and maintaining quality during conversions were challenges that required rigorous testing across devices and network conditions.
- Design and UX: Creating a clean, intuitive interface for both children and adults, while maintaining a unique identity for Stoira, was a constant balance between creativity and simplicity.
Conclusion
Building Stoira was a challenging yet rewarding journey. It allowed me to blend our technical expertise with our passion for storytelling, creating a platform that not only delivers high-quality audio experiences but also allows users to discover and enjoy stories in a new, immersive way. I'm excited to see where this project will go and how it will evolve in the future!
Built With
- google-cloud
- mongodb
- react-native
- revenuecat
- unistyle


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