A minimal habit tracking app built with React Native (Expo) and Supabase.
| Home | Habits | Insights | Profile |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Track daily habits with one-tap completion
- View streaks and weekly progress
- Insights with heatmap calendar
- Journal thoughts section
- Custom habit creation with icons
- Push notifications for reminders
- Dark mode support
- React Native + Expo SDK 54
- TypeScript
- Supabase (Auth & Database)
- Expo Router (File-based navigation)
- Expo Notifications
- Node.js 18+
- npm or yarn
- Expo Go app (for development)
- Supabase account
# Clone the repo
git clone https://github.com/DineshMn1/pulse.git
cd pulse
# Install dependencies
npm install
# Copy environment file
cp .env.example .env
# Add your Supabase credentials to .envCreate a .env file with:
EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-keyRun the SQL in supabase-schema.sql in your Supabase SQL Editor to create:
profiles- User profileshabits- User habitscompletions- Daily completionsreflections- Journal entries
# Start Expo development server
npm start
# Run on iOS simulator
npm run ios
# Run on Android emulator
npm run android
# Run on web
npm run webScan the QR code with Expo Go (Android) or Camera app (iOS).
# Install EAS CLI globally
npm install -g eas-cli
# Login to your Expo account
eas login
# Configure the project (first time only)
eas build:configure
# Build for Android (APK for testing)
eas build --platform android --profile preview
# Build for Android (Play Store)
eas build --platform android --profile production
# Build for iOS (App Store)
eas build --platform ios --profile production
# Build both platforms
eas build --platform allEdit eas.json to customize:
{
"build": {
"preview": {
"android": {
"buildType": "apk"
}
},
"production": {}
}
}# Generate native projects
npx expo prebuild
# Build Android APK locally
cd android && ./gradlew assembleRelease
# Build iOS (requires Mac + Xcode)
cd ios && xcodebuild -workspace Pulse.xcworkspace -scheme Pulse -configuration Release# Submit to Google Play
eas submit --platform android
# Submit to App Store
eas submit --platform ios├── app/ # Screens (Expo Router)
│ ├── (tabs)/ # Tab navigation screens
│ ├── auth.tsx # Login/Signup
│ ├── profile.tsx # User profile
│ └── _layout.tsx # Root layout
├── assets/ # Images, fonts
├── components/ # Reusable components
├── constants/ # Colors, Layout, Habits config
├── context/ # React Context (Auth)
├── lib/ # Supabase client & utilities
└── app.json # Expo config
MIT



