Habitro is a modern, minimalist habit tracker designed to help you build and maintain positive routines. Built with React Native (Expo), it features a beautiful dark-themed UI, streak tracking, and insightful analytics to keep you motivated.
- Personalized Routine Tracking: Create, edit, and manage your daily habits with ease.
- Smart Analytics: Visualize your progress with interactive charts and heatmaps.
- Gamified Growth: Watch your virtual plant grow as you complete tasks.
- Seamless Auth: Secure cloud-based synchronization (MongoDB + Express).
- Beautiful UI: Polished Dark Mode interface inspired by Material Design 3.
- Haptic Feedback: Satisfying interactions for every completion.
- Framework: React Native via Expo
- Navigation: Expo Router (File-based routing)
- State Management: Zustand
- Animations: React Native Reanimated
- Storage: MongoDB (Backend), AsyncStorage (Local token cache)
- Styling: Custom Theme System (M3 inspired)
-
Clone the repository
git clone https://github.com/yourusername/habitro.git cd habitro -
Install dependencies
npm install
Note: If you want to run the backend locally, ensure you have MongoDB running or a connection string in
.env. -
Start the app
npx expo start
-
Scan the QR Code: Use the Expo Go app (Android) or Camera app (iOS) to run the app on your device.
If you need a fresh slate during development:
npm run reset-projecthabitro/
βββ app/ # Expo Router screens
β βββ (tabs)/ # Main tab navigation (Home, Editor, Analytics, Settings)
β βββ login.tsx # Authentication screens
β βββ _layout.tsx # Root layout & Splash screen logic
βββ assets/ # Images, fonts, and icons
βββ src/
β βββ components/ # Reusable UI components (Logo, Cards, Charts)
β βββ store/ # Zustand state stores (Auth, Routine)
β βββ theme/ # Design tokens (Colors, Spacing, Typography)
β βββ utils/ # Helper functions (Dates, Streaks)
βββ server/ # Express backend & Seed scripts
βββ scripts/ # Utility scripts (Icon generation, etc.)To build an APK for testing or release:
eas build -p android --profile previewor for a local build (if configured):
npx expo run:androidSee BUILD_APK.md for detailed instructions on generating a signed APK.
This project is licensed under the MIT License.