SobrixHealth is a comprehensive mobile application designed to support individuals on their journey to recovery from addiction. Built with modern React Native technologies, the app provides tools for tracking sobriety, managing cravings, accessing emergency resources, and practicing mindfulness techniques.
The SobrixHealth app provides a comprehensive recovery support system with the following key screens:
- π Recovery Dashboard - Track sobriety progress, savings, and achievements
- π Progress Tracking - Monitor mood, health metrics, and milestones
- π§ Mindfulness Exercises - Access guided breathing, meditation, and coping tools
- πͺ Health Metrics - Log and visualize physical and mental health improvements
- π₯ Emergency Contacts - Quick access to your support network
- βοΈ Settings & Profile - Customize your recovery experience
Screenshots coming soon - app is currently in active development.
- Sobriety Tracker: Track days, weeks, months, and years of sobriety with beautiful visualizations
- Financial Savings Calculator: See exactly how much money you've saved by avoiding substance use
- Health Metrics: Monitor improvements in sleep quality, energy levels, stress, and overall wellbeing
- Achievement System: Celebrate recovery milestones with meaningful rewards and recognition
- Mood Tracking: Log daily mood states and craving intensity with intuitive charts
- Relapse Prevention: Record triggers and circumstances to identify patterns and prevent future relapses
- Milestone Tracking: Visualize upcoming goals and celebrate achieved recovery milestones
- Usage Statistics: Analyze historical substance usage patterns and associated costs
- Health Progress: Track physical and mental health improvements over time
- Breathing Exercises: Guided breathing techniques with visual cues for stress reduction
- Meditation Sessions: Curated mindfulness practices specifically designed for recovery support
- Grounding Techniques: Immediate tools to manage cravings and anxiety in real-time
- Body Scan Exercises: Progressive muscle relaxation for physical and mental wellness
- Visualization Practices: Guided imagery sessions to strengthen recovery motivation
- Emergency Contacts: One-tap access to your personal support network
- Contact Organization: Manage your recovery support team with detailed contact information
- Quick Communication: Instant calling and messaging capabilities
- Support Network: Build and maintain connections with sponsors, therapists, and support groups
- Profile Management: Customize your personal information and recovery details
- Notification Settings: Configure reminders and alerts for your recovery routine
- Privacy Controls: Manage data sharing and privacy preferences
- App Customization: Personalize the app experience to fit your needs
- Framework: React Native 0.79.2 with React 19.0.0
- Navigation: Expo Router v5.0.7 for file-based routing
- Styling: NativeWind v4.1.23 (Tailwind CSS for React Native)
- State Management: Zustand v5.0.4 with AsyncStorage for persistent data
- Development: Expo SDK 53.0.9 with development client
- Language: TypeScript 5.8.3 with strict type checking
- Package Manager: Bun (high-performance JavaScript runtime and package manager)
- Code Quality: ESLint 9.27.0 with React Native specific rules
- Icons: Lucide React Native v0.475.0 for modern iconography
- Charts: React Native Chart Kit v6.12.0 for data visualization
- Node.js: v18 or higher (required for some Expo commands)
- Bun: v1.0.0 or higher (primary package manager)
- Expo CLI: Latest version
- Development Environment:
- iOS: Xcode and iOS Simulator
- Android: Android Studio and Android Emulator
- Install Bun (if not already installed):
# macOS/Linux
curl -fsSL https://bun.sh/install | bash
# Or using Homebrew
brew install bun
# Verify installation
bun --version- Clone the repository:
git clone https://github.com/Stijnus/sobrixhealth.git
cd sobrixhealth- Install dependencies:
bun install- Start the development server:
bun start- Run on your preferred platform:
# For iOS
bun ios
# For Android
bun android
# For web development
bun start-web
# For web with debugging
bun start-web-devsobrixhealth/
βββ app/ # Expo Router file-based routing
β βββ (tabs)/ # Tab navigation group
β β βββ dashboard/ # Dashboard tab with nested routes
β β βββ progress.tsx # Progress tracking tab
β β βββ mindfulness.tsx # Mindfulness exercises tab
β β βββ contacts.tsx # Emergency contacts tab
β β βββ settings.tsx # Settings and profile tab
β β βββ _layout.tsx # Tab layout configuration
β βββ onboarding.tsx # First-time user setup
β βββ _layout.tsx # Root layout
β βββ +not-found.tsx # 404 error page
βββ components/ # Feature-organized components
β βββ dashboard/ # Dashboard-specific components
β βββ health/ # Health tracking components
β βββ mindfulness/ # Mindfulness exercise components
β βββ progress/ # Progress visualization components
β βββ settings/ # Settings and configuration components
β βββ contacts/ # Contact management components
β βββ onboarding/ # Onboarding flow components
β βββ shared/ # Reusable components and utilities
βββ ios/ # iOS native code and configuration
βββ android/ # Android native code and configuration
βββ style/ # Global styling system
β βββ index.ts # Main style exports
β βββ modal.ts # Modal-specific styles
β βββ forms.ts # Form and input styles
β βββ icons/ # Icon assets
βββ store/ # Zustand state management
βββ types/ # TypeScript type definitions
βββ hooks/ # Custom React hooks
βββ utils/ # Utility functions
βββ constants/ # App constants and configuration
βββ context/ # React context providers
- tailwind.config.js: NativeWind v4 configuration
- postcss.config.js: PostCSS processing for Tailwind
- eslint.config.js: Comprehensive ESLint rules
- tsconfig.json: TypeScript configuration
- babel.config.cjs: Babel transformation settings
- app.json: Expo project configuration
- eas.json: Expo Application Services configuration
The app uses NativeWind v4, bringing Tailwind CSS to React Native:
- Global Styles: Defined in
global.csswith Tailwind directives - Component Styles: Organized in the
style/directory for reusability - Type Safety: Full TypeScript support for style definitions
- Performance: Optimized for React Native with minimal runtime overhead
- Global System: Centralized styling in
style/index.ts - Modal Styles: Consistent modal patterns in
style/modal.ts - Form Styles: Reusable form components in
style/forms.ts - No Inline Styles: ESLint rules enforce StyleSheet usage
- Alphabetical Ordering: Style properties must be alphabetically ordered
When you first open SobrixHealth, you'll be guided through a personalized setup:
- Welcome Screen: Introduction to the app's purpose and features
- Personal Information: Enter your name and basic recovery details
- Addiction Configuration: Set up your specific recovery parameters
- Dashboard Setup: Configure your preferred tracking metrics
- Notification Preferences: Set up reminders and alerts
- Dashboard Check: Review your progress and current metrics
- Progress Logging: Update your daily recovery data
- Mindfulness Practice: Access guided exercises when needed
- Contact Support: Quick access to your support network
- Settings Management: Adjust preferences and privacy settings
The SobrixHealth app is hosted on Expo and can be accessed at: https://expo.dev/accounts/stijnus/projects/sobrixhealth
- Project ID:
7b113f00-3708-45d8-b011-299748b5674d - Owner:
stijnus - Slug:
sobrixhealth
The project is configured with EAS for building and deploying. EAS automatically detects Bun from the bun.lockb file.
# Development build (with development client)
eas build --profile development
# Preview build (internal distribution)
eas build --profile preview
# Production build (app store ready)
eas build --profile production# Install EAS CLI globally (using Bun)
bun add -g @expo/eas-cli
# Login to your Expo account
eas login
# Publish an update to the development channel
eas update --branch development
# Publish an update to the production channel
eas update --branch production
# Publish with a specific message
eas update --branch production --message "Fix critical bug in dashboard"# Build for both platforms (production)
eas build --platform all --profile production
# Build for iOS only
eas build --platform ios --profile production
# Build for Android only
eas build --platform android --profile production
# Build development version for testing
eas build --platform all --profile development# Submit iOS build to App Store
eas submit --platform ios
# Submit Android build to Google Play
eas submit --platform android
# Submit both platforms
eas submit --platform all- Local Development: Use
bun startfor local development - Testing Builds: Create development builds with
eas build --profile development - Preview Releases: Use preview profile for internal testing
- Production Updates: Deploy OTA updates with
eas update - Store Releases: Submit production builds to app stores
- eas.json: EAS build and submit configuration
- app.json: Expo project configuration with EAS project ID
- Build Profiles: Development, preview, and production configurations
- Credentials: Managed remotely for iOS, locally for Android
The app supports OTA updates for JavaScript and asset changes:
# Quick update to production
eas update --auto
# Update with custom branch
eas update --branch feature-branch
# Update with rollback capability
eas update --branch production --message "Version 1.0.1 - Bug fixes"- π Performance: 3-7x faster installations than traditional package managers
- π± Official Expo Support: Fully supported by Expo and EAS builds
- πΏ Efficiency: Space-efficient dependency management
- π§ Modern Tooling: All-in-one JavaScript runtime and package manager
# Install dependencies
bun install
# Add a new dependency
bun add package-name
# Add a dev dependency
bun add -D package-name
# Remove a dependency
bun remove package-name
# Run scripts
bun run script-name
# Update dependencies
bun updateSome packages require postinstall scripts for proper functionality. These are configured in package.json:
{
"trustedDependencies": [
"@expo/ngrok",
"@sentry/cli"
]
}SobrixHealth prioritizes your privacy and data security:
- Local Storage: All personal data is stored securely on your device
- No Data Sharing: Your information is never shared without explicit consent
- Privacy Controls: Granular settings to control what data is tracked
- Secure Communication: Encrypted connections for any network requests
- Data Ownership: Full control over your data with export capabilities
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Install dependencies:
bun install - Follow the coding standards (ESLint will help enforce these)
- Test your changes thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
- TypeScript: Strict typing required, no
anytypes allowed - ESLint: All rules must pass, including React Native specific rules
- Style Guidelines: Follow the established styling patterns
- Component Organization: Use feature-based directory structure
- Testing: Ensure new features include appropriate tests
- Bun: Use Bun for all package management operations
- π Internationalization: Help us support more languages
- π¨ UI/UX: Improve the user interface and accessibility
- π Analytics: Enhance data visualization and insights
- π§ Content: Add new mindfulness exercises and resources
- π Bug Fixes: Help us identify and fix issues
- π± Platform Features: Leverage platform-specific capabilities
This project is licensed under the MIT License - see the LICENSE file for details.
- Recovery Communities: Inspiration from recovery communities worldwide
- Mental Health Professionals: Guidance from addiction recovery specialists
- Open Source Contributors: Amazing developers who make this possible
- Beta Testers: Users who provided valuable feedback during development
- Expo Team: For providing excellent React Native tooling and Bun support
- NativeWind: For bringing Tailwind CSS to React Native
- Bun Team: For creating an incredible JavaScript runtime and package manager
- Issues: Report bugs or request features on GitHub Issues
- Discussions: Join community discussions on GitHub Discussions
- Email: For sensitive matters, contact us at support@sobrixhealth.com
SobrixHealth is not a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition or recovery plan.
Made with β€οΈ for the recovery community
β Star us on GitHub β’ π Report Bug β’ π¬ Join Discussion