Private, offline-first habit tracking with smart local reminders and detailed analytics.
1
stars
4
commits
TypeScript
primary language
Sep 9, 2026
updated
A private, offline-first habit tracker built for consistency—not attention.
Track daily habits, set multi-check-in goals, schedule smart reminders, and understand your progress. No account, no ads, and no cloud database.
Demo data only. HabbitDot never uploads your habit names or history.
On Android, allow installation from your browser or file manager when prompted, then open the downloaded HabbitDot.apk. Existing users can install a newer APK over the current app to preserve local history. Uninstalling HabbitDot removes its on-device data.
iOS builds are not distributed here. Developers can run the iOS project locally with Xcode.
| Layer | Choice |
|---|---|
| App | React Native 0.86 + React 19 |
| Toolchain | Expo SDK 57 + Continuous Native Generation |
| Language | Strict TypeScript |
| Storage | expo-sqlite |
| Reminders | expo-notifications |
| Time input | Native date/time picker |
Requirements: Node.js 22 or newer, npm, and either Expo Go or an Android/iOS native toolchain.
git clone https://github.com/shivardev/HabbitDot.git
cd HabbitDot
npm ci
npm run check
npm start
Scan the displayed QR code with Expo Go for quick UI development. Expo Go has a separate sandboxed database from an installed HabbitDot build.
For an Android development build:
npm run android
Local notification behavior should be tested in an installed development or release build. HabbitDot does not use remote push notifications.
The preview EAS profile produces an APK, while the production profile produces the Android store artifact.
npm install --global eas-cli
eas login
eas build --platform android --profile preview
To publish a downloaded build as a GitHub release:
gh release create v1.0.0 ./HabbitDot.apk \
--repo shivardev/HabbitDot \
--title "HabbitDot v1.0.0" \
--notes-from-tag
The native android/ and ios/ folders are generated by Expo and intentionally not committed.
App.tsx App shell, habit screens, and navigation
src/AnalyticsScreen.tsx On-device analytics dashboard
src/database.ts SQLite schema, migrations, and repositories
src/notifications.ts Reminder scheduling and notification actions
assets/ App icons and brand assets
docs/ Architecture notes and product screenshots
Read Architecture for the data flow and design decisions, and Privacy for the plain-language privacy policy.
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request. Report security-sensitive issues according to SECURITY.md.
HabbitDot is open source under the MIT License.
4 commits
TypeScript
100.0%
Private, offline-first habit tracking with smart local reminders and detailed analytics.
1
stars
4
commits
TypeScript
primary language
Sep 9, 2026
updated
A private, offline-first habit tracker built for consistency—not attention.
Track daily habits, set multi-check-in goals, schedule smart reminders, and understand your progress. No account, no ads, and no cloud database.
Demo data only. HabbitDot never uploads your habit names or history.
On Android, allow installation from your browser or file manager when prompted, then open the downloaded HabbitDot.apk. Existing users can install a newer APK over the current app to preserve local history. Uninstalling HabbitDot removes its on-device data.
iOS builds are not distributed here. Developers can run the iOS project locally with Xcode.
| Layer | Choice |
|---|---|
| App | React Native 0.86 + React 19 |
| Toolchain | Expo SDK 57 + Continuous Native Generation |
| Language | Strict TypeScript |
| Storage | expo-sqlite |
| Reminders | expo-notifications |
| Time input | Native date/time picker |
Requirements: Node.js 22 or newer, npm, and either Expo Go or an Android/iOS native toolchain.
git clone https://github.com/shivardev/HabbitDot.git
cd HabbitDot
npm ci
npm run check
npm start
Scan the displayed QR code with Expo Go for quick UI development. Expo Go has a separate sandboxed database from an installed HabbitDot build.
For an Android development build:
npm run android
Local notification behavior should be tested in an installed development or release build. HabbitDot does not use remote push notifications.
The preview EAS profile produces an APK, while the production profile produces the Android store artifact.
npm install --global eas-cli
eas login
eas build --platform android --profile preview
To publish a downloaded build as a GitHub release:
gh release create v1.0.0 ./HabbitDot.apk \
--repo shivardev/HabbitDot \
--title "HabbitDot v1.0.0" \
--notes-from-tag
The native android/ and ios/ folders are generated by Expo and intentionally not committed.
App.tsx App shell, habit screens, and navigation
src/AnalyticsScreen.tsx On-device analytics dashboard
src/database.ts SQLite schema, migrations, and repositories
src/notifications.ts Reminder scheduling and notification actions
assets/ App icons and brand assets
docs/ Architecture notes and product screenshots
Read Architecture for the data flow and design decisions, and Privacy for the plain-language privacy policy.
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request. Report security-sensitive issues according to SECURITY.md.
HabbitDot is open source under the MIT License.
4 commits
TypeScript
100.0%