Lilithia is a cross-platform mobile application that brings inspiring stories of women from different periods of history into a curated and distraction-free reading experience.
Built with React Native and Expo, the application allows users to discover stories, listen to audio narration, save favorites, earn collectible badges, and explore trending content.
Lilithia is currently published on Google Play and supports both Turkish and English content experiences.
The Problem
Many important women and their achievements remain overlooked or difficult to discover through traditional history resources.
At the same time, mobile readers often lack a focused environment that combines storytelling, audio narration, personalization, and offline access without unnecessary distractions.
The goal was to create an engaging mobile platform where users could easily discover and connect with meaningful historical stories.
The Solution
I designed Lilithia as a visual story-discovery and reading experience.
Users can:
• Discover featured women and daily stories
• Browse curated and trending content
• Read long-form historical stories
• Listen to audio narration
• Save stories to a personal favorites collection
• Earn badges through reading activity
• Track progress through a personalized profile
• Access previously loaded content offline
• Share stories and achievements
The interface combines dark-mode mobile design with illustrated historical artwork and clear navigation.
Discovery and reading flow featuring personalized recommendations, story exploration, and long-form content experiences.
System Architecture
Lilithia was developed with React Native and Expo using a single cross-platform codebase.
The application uses reusable functional components and React Context to manage shared state, including authentication, theme preferences, reading activity, and user progress.
Expo Router handles tab and stack navigation across the home, explore, favorites, story, badge, and profile experiences.
Firebase provides the backend infrastructure:
• Firebase Authentication for user identity and sessions
• Cloud Firestore for content and user-related data
• AsyncStorage for locally cached content and reading access
• Expo AV for audio narration
• EAS Build for Android builds and Google Play distribution
Content and Personalization
The application stores story content, user favorites, reading activity, and badge progress through a Firebase-backed data model.
User-specific information is separated by authenticated user ID, while public story content is retrieved from shared content collections.
This structure supports personalized favorites and progress without exposing one user’s activity to another.
Offline Reading
One of the main product goals was allowing users to continue reading previously accessed stories when an internet connection was unavailable.
I implemented a cache-first approach using AsyncStorage. Content is saved locally after the initial fetch and can be served from the device on later visits.
When a connection is available, the application can refresh cached content in the background.
Performance Optimization
Long content lists are rendered with FlatList virtualization to keep memory usage stable.
Images and story content are loaded only when needed instead of being downloaded all at once.
Local caching reduces repeated Firestore reads and improves the speed of revisiting stories.
Challenges & Solutions
A major challenge was creating a reliable offline experience without building a separate synchronization backend.
I solved this with a cache-first content strategy that prioritizes local data and refreshes it when the network is available.
Another challenge was managing the complete Google Play release process. I configured application signing, versioning, Android builds, store assets, release settings, and updates through Expo and EAS Build.
My Role
I developed Lilithia independently and was responsible for:
• Product planning
• UI and UX design
• React Native development
• Expo Router navigation
• Firebase Authentication integration
• Firestore data architecture
• Offline reading and local caching
• Audio narration integration
• Favorites and badge functionality
• Performance optimization
• Testing and debugging
• Google Play release management
• Store listing and deployment
Outcome
The result is a published mobile reading application that combines historical storytelling, audio narration, offline access, favorites, collectible badges, and personalized discovery.
Lilithia demonstrates my ability to design, build, release, and maintain a complete cross-platform mobile product.
Engagement features including favorites, collectible badges, progress tracking, and trending story discovery.