Inspiration
Mental health support shouldn't require waiting weeks for an appointment or spending hundreds per session. We wanted to create a tool that helps people process difficult emotions in real-time while complementing professional therapy — not replacing it. The idea came from recognizing that therapists often lack context between sessions, and clients struggle to articulate patterns in their thinking. Unload bridges that gap by turning scattered thoughts into structured insights that empower both individuals and their mental health professionals.
What it does
Unload is a mental wellness companion that helps you process thoughts and emotions through voice or text input. Using AI-powered cognitive reframing, it takes your rants, worries, or negative thoughts and gently reframes them into more balanced, compassionate perspectives. The app tracks your mood over time, identifies recurring themes, and generates weekly summaries with visualizations. You can export shareable reports to give your therapist rich context about your emotional patterns, mood trends, and progress — transforming therapy sessions from reactive catch-ups into proactive, data-informed conversations.
How we built it
We built Unload with React Native and Expo to create a smooth cross-platform experience on iOS and Android. The app uses Firebase for secure authentication and Firestore for real-time data storage, ensuring privacy and fast synchronization. For the AI-powered reframing, we integrated OpenAI's GPT-4o model, carefully crafting prompts that deliver empathetic, uplifting responses without clinical language or diagnosis. Speech recognition is handled by expo-speech-recognition for seamless voice input. We used expo-linear-gradient for beautiful UI elements, react-native-gesture-handler for smooth interactions, and expo-print and expo-sharing to generate and share PDF reports with therapists. The architecture stores weekly entries with metadata like mood scores, themes, and summary sentences, enabling powerful pattern recognition over time.
Challenges we ran into
The biggest challenge was getting speech recognition to work reliably in a production build. Since expo-speech-recognition requires native modules, we couldn't test it in Expo Go and had to create development builds repeatedly. We also hit a major roadblock with React Native 0.81.5 and react-native-reanimated — a Folly C++ header incompatibility caused builds to fail. After hours of debugging, we removed Reanimated (which we weren't using anyway) and patched Podfile settings to get builds working. Another challenge was ensuring continuous voice recording didn't stop on pauses, which required tweaking the continuous: true flag. Finally, App Store submission kept failing due to missing NSPhotoLibraryUsageDescription in Info.plist, teaching us the importance of proper permission declarations even when using managed Expo workflows.
Accomplishments that we're proud of
We're incredibly proud of creating an app that genuinely helps people while respecting the irreplaceable role of professional therapy. The AI reframing strikes the perfect balance — warm and encouraging without being prescriptive or diagnostic. The weekly insights feature is game-changing: users can see patterns they'd never notice on their own, and therapists get context that would take sessions to uncover. We're also proud of the UX: the voice input with continuous recording, the cloud-themed design that feels calming, and the seamless keyboard handling that keeps the text input visible. Most importantly, we shipped a real product to the App Store, overcoming countless build issues and learning production deployment end-to-end.
What we learned
We learned that native module integration in React Native requires patience and careful testing — what works in development doesn't always work in production. We discovered how critical proper permission strings are for App Store approval and how managed Expo workflows handle Info.plist generation. On the AI side, we learned that prompt engineering is an art: getting the tone right for mental wellness required dozens of iterations. We also learned about Firestore data modeling for time-series data and how to structure nested documents for efficient queries. Finally, we learned that removing dependencies (like Reanimated) when they're not needed can solve more problems than they create.
What's next for Unload
Next, we want to add more customization options: let users choose reframing styles (gentle vs. direct, concise vs. detailed) and adjust AI temperature. We're planning to implement streak tracking and reminders to encourage daily journaling. For therapists, we want to build a companion dashboard where they can securely view their clients' reports with permission, making Unload a true collaboration tool. We'll add more robust analytics: trend graphs, emotion heatmaps, and predictive insights about mood patterns. We also want to explore integrations with wearables like Apple Watch for biometric data (heart rate variability, sleep patterns) to give an even fuller picture of mental wellness. Finally, we'll move the OpenAI API key to a secure backend to protect it from extraction and add rate limiting for production scalability.
Built With
- expo.io
- firebase
- firestore
- ios
- javascript
- openai
- react-native
Log in or sign up for Devpost to join the conversation.