Inspiration
In an increasingly digital world, genuine connection and consistent self-care can feel out of reach. We were inspired by the rising rates of loneliness and the daily struggle many people face with building positive habits. Existing tools often felt impersonal or purely functional, so we set out to create NorthernStar: a companion that not only listens but actively supports users on their journey toward personal growth and emotional well-being.
What it does
NorthernStar is a voice-first AI companion designed to be a supportive friend and coach in your pocket. The app has three core functions:
AI Companion: Users can engage in open-ended, empathetic conversations with their AI, NorthernStar, through either text or real-time voice calls. The AI is designed to be a warm, emotionally intelligent listener, providing a safe space to share thoughts and feelings.
Habit Formation: The app incorporates a gamified system to help users build and maintain positive daily habits. Users can track their progress, maintain streaks, and earn credits for their consistency, turning self-improvement into a rewarding experience.
Community Connection: To further combat isolation, NorthernStar offers a "Connect" feature where users can find and interact with other community members on similar journeys, with premium features for live voice and video calls.
How we built it
We built NorthernStar using a modern, cross-platform mobile stack.
Frontend: The mobile application was built with React Native and Expo, using Expo Router for file-system-based navigation. The user interface is composed of custom components designed for a clean, light, and supportive aesthetic, with icons from lucide-react-native.
AI & Backend Services: We integrated a suite of powerful AI technologies to bring NorthernStar to life:
Text Conversation: For text-based chat, we connected directly to OpenAI's API (gpt-4o-mini) to provide intelligent and empathetic responses.
Speech-to-Text: We built a local development server using Python, Flask, and the Vosk offline speech recognition toolkit to transcribe recorded audio messages.
Conversational Voice AI: For real-time calls, we integrated directly with an ElevenLabs Conversational AI Agent using a WebSocket connection to stream audio back and forth, creating a fluid, live conversation.
Challenges we ran into
Building a real-time, AI-driven application came with its share of hurdles. One of our first major challenges was a persistent "Network request failed" error. We discovered this was a combination of issues: Android's expo-av saving audio in .3gp format while our server expected .wav, local machine firewall configurations, and the classic mobile development mistake of using localhost instead of a local IP address.
Later, implementing the live voice call feature was a significant technical challenge. We had to architect a pseudo-streaming solution using expo-av and expo-file-system to record audio in short, sequential chunks, encode them to Base64, and send them over the WebSocket. Debugging why the agent was initially silent required a systematic, step-by-step process of adding logs to trace the entire data flow.
Accomplishments that we're proud of We are incredibly proud of successfully integrating three distinct AI services (OpenAI, ElevenLabs, and Vosk) into a single, cohesive user experience. Building a functional, real-time conversational voice agent on a mobile platform using WebSockets was a major accomplishment that brought the core vision of the app to life. Overcoming the complex networking and debugging challenges taught us a great deal and resulted in a more robust and polished application.
What we learned
This project was a deep dive into the complexities of real-time communication and AI integration. We learned the critical importance of a methodical debugging process, especially for silent failures where tracing the execution flow with logs is paramount. We also gained a much deeper appreciation for TypeScript's strictness, as it helped us catch potential null-reference bugs in our asynchronous service code before they could cause runtime crashes.
What's next for North Star
The current version is a powerful proof-of-concept, and we're excited about the future. Our next steps include:
Building a Full Backend: Transitioning from local and client-side services to a robust, cloud-hosted backend to manage user accounts, persist data in a database, and securely handle credits.
Implementing Live Peer Connections: Integrating a full WebRTC solution (like Twilio or Agora) to make the "Connect" screen fully functional with live P2P calls.
Deepening the AI Persona: Using the detailed persona prompt we created to give NorthernStar an even more consistent and empathetic personality.
Production Release: Preparing the app for the App Store and Google Play Store by securing API keys, optimizing performance, and building out a full user onboarding experience.x
Log in or sign up for Devpost to join the conversation.