StillPoint is an open-source mental health companion app designed to provide a private, personalized space for reflection and growth. It features an AI, powered by Google's Gemini models via Vertex AI, that learns and adapts to you over time through conversation and user-provided insights. Our goal is to create a supportive, non-judgmental partner for your self-discovery journey.
We believe that tools dealing with mental well-being demand the highest level of trust and transparency. StillPoint is open source because:
- Transparency: Anyone can inspect the code to understand exactly how the AI works, how data is handled, and what prompts are used. No hidden algorithms or data usage.
- Safety & Security: The community can audit the codebase for potential security vulnerabilities or privacy concerns, leading to a safer application for everyone.
- Trust: Open development fosters trust. You can verify our commitment to privacy and ethical AI practices.
- Community & Collaboration: We want to build StillPoint with the community. Open source allows others to contribute ideas, features, and improvements.
- Adaptive AI Companion: Engage in conversations with an AI that learns from your chat history, summaries, and questionnaire responses (securely stored in your private Firebase account).
- Personalized Experience: The AI tailors its interactions based on your preferences and past conversations, aiming for more relevant and insightful dialogue.
- Conversation Summaries ("Reflections"): Generate concise summaries of your chat sessions to capture key insights and track your journey over time.
- Voice Input: Speak your thoughts naturally. StillPoint uses OpenAI's Whisper API to transcribe your voice notes directly into the chat input.
- User Insights Questionnaire: Provide optional background information through a questionnaire to help the AI understand your preferences and tailor its approach from the start.
- Privacy-Focused: Built on Google Cloud (Firebase Authentication, Firestore, Vertex AI) with user data stored securely within individual user accounts. You own and control your data.
- Completely Open Source: The entire codebase is available for review and contribution.
- Frontend: React (with Vite)
- Styling: Material UI (MUI)
- Backend & Database: Firebase (Authentication, Firestore)
- AI Language Model: Google Gemini Pro (via Firebase Vertex AI SDK)
- AI Voice Transcription: OpenAI Whisper API
- State Management: React Hooks (useState, useEffect, useCallback, useMemo, custom hooks)
- Routing: React Router
-
Clone the repository:
git clone https://github.com/AceCanacan/mental-health-app.git cd mental-health-app/app -
Install dependencies:
npm install # or yarn install -
Set up Firebase:
- Create a Firebase project at https://console.firebase.google.com/.
- Enable Authentication (Email/Password recommended).
- Enable Firestore Database.
- Enable Vertex AI integration within your Google Cloud project linked to Firebase. Ensure the Gemini API (e.g.,
gemini-2.0-flash) is enabled. - Register a Web App in your Firebase project settings.
- Copy your Firebase configuration credentials.
-
Set up OpenAI:
- Get an API key from https://platform.openai.com/ for Whisper transcription.
-
Configure Environment Variables:
- Create a
.envfile in theappdirectory (/mental-health-app/app/.env). - Add your Firebase and OpenAI credentials. Important: Vite requires environment variables exposed to the client to be prefixed with
VITE_.
# Firebase Configuration VITE_FIREBASE_API_KEY=YOUR_API_KEY VITE_FIREBASE_AUTH_DOMAIN=YOUR_AUTH_DOMAIN VITE_FIREBASE_PROJECT_ID=YOUR_PROJECT_ID VITE_FIREBASE_STORAGE_BUCKET=YOUR_STORAGE_BUCKET VITE_FIREBASE_MESSAGING_SENDER_ID=YOUR_MESSAGING_SENDER_ID VITE_FIREBASE_APP_ID=YOUR_APP_ID # VITE_FIREBASE_MEASUREMENT_ID=YOUR_MEASUREMENT_ID (Optional) # OpenAI API Key (for Whisper) VITE_OPENAI_API_KEY=YOUR_OPENAI_API_KEY # Google Cloud / Vertex AI (Gemini) - Note: Firebase SDK might handle auth implicitly if set up correctly, # but explicitly adding the key might be needed depending on setup/future changes. # VITE_GEMINI_API_KEY=YOUR_GOOGLE_CLOUD_API_KEY_WITH_VERTEX_AI_ACCESS (If needed)
(Note: Ensure your Google Cloud project linked to Firebase has billing enabled for Vertex AI and OpenAI API usage.)
- Create a
-
Run the development server:
npm run dev # or yarn devThe app should now be running on
http://localhost:5173(or another port if 5173 is busy).
Contributions are welcome! Whether it's bug reports, feature suggestions, or code contributions, please feel free to participate.
- Issues: Check the Issues tab for existing bugs or feature requests. Feel free to open a new issue.
- Pull Requests:
- Fork the repository.
- Create a new branch for your feature or bug fix (
git checkout -b feature/your-feature-nameorbugfix/issue-number). - Make your changes.
- Ensure your code adheres to the project's style (ESLint is configured in
eslint.config.js). Runnpm run lintoryarn lint. - Commit your changes with clear messages.
- Push your branch to your fork.
- Submit a Pull Request to the
mainbranch of the original repository.
This project is licensed under the MIT License. See the LICENSE file for details. (You should add a LICENSE file with the MIT license text).
Thank you for your interest in StillPoint!