shivardev/HabbitDot

Private, offline-first habit tracking with smart local reminders and detailed analytics.

1

stars

4

commits

TypeScript

primary language

Sep 9, 2026

updated

android
expo
habit-tracker
offline-first
react-native
typescript
Browse cluster: React Native and Expo Development

README

HabbitDot app icon

HabbitDot

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.

Download APK

Latest release CI License: MIT Expo SDK 57

See it in action

HabbitDot daily habit dashboard   Habit history, target, and reminder settings   Private on-device habit analytics

Demo data only. HabbitDot never uploads your habit names or history.

Why HabbitDot?

  • Fast daily check-ins — record progress with one tap, including goals from 1× to 20× per day.
  • Reminders that understand your goal — schedule multiple exact-time reminders; they stop after today's target is complete.
  • History you can read at a glance — contribution grids and monthly calendars show both partial and completed days.
  • Useful local analytics — review completion rate, perfect days, streaks, trends, weekdays, and per-habit performance.
  • Private by design — your data stays in the app's local SQLite database. There is no account, telemetry, advertising, or analytics SDK.
  • Works offline — the core experience needs no backend and no internet connection.

Download for Android

Download the latest APK →

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.

Technology

LayerChoice
AppReact Native 0.86 + React 19
ToolchainExpo SDK 57 + Continuous Native Generation
LanguageStrict TypeScript
Storageexpo-sqlite
Remindersexpo-notifications
Time inputNative date/time picker

Run locally

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.

Build an installable APK

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.

Project structure

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.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request. Report security-sensitive issues according to SECURITY.md.

License

HabbitDot is open source under the MIT License.

Contributors

shivardev

4 commits

shivardev/HabbitDot

Private, offline-first habit tracking with smart local reminders and detailed analytics.

1

stars

4

commits

TypeScript

primary language

Sep 9, 2026

updated

android
expo
habit-tracker
offline-first
react-native
typescript
Browse cluster: React Native and Expo Development

README

HabbitDot app icon

HabbitDot

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.

Download APK

Latest release CI License: MIT Expo SDK 57

See it in action

HabbitDot daily habit dashboard   Habit history, target, and reminder settings   Private on-device habit analytics

Demo data only. HabbitDot never uploads your habit names or history.

Why HabbitDot?

  • Fast daily check-ins — record progress with one tap, including goals from 1× to 20× per day.
  • Reminders that understand your goal — schedule multiple exact-time reminders; they stop after today's target is complete.
  • History you can read at a glance — contribution grids and monthly calendars show both partial and completed days.
  • Useful local analytics — review completion rate, perfect days, streaks, trends, weekdays, and per-habit performance.
  • Private by design — your data stays in the app's local SQLite database. There is no account, telemetry, advertising, or analytics SDK.
  • Works offline — the core experience needs no backend and no internet connection.

Download for Android

Download the latest APK →

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.

Technology

LayerChoice
AppReact Native 0.86 + React 19
ToolchainExpo SDK 57 + Continuous Native Generation
LanguageStrict TypeScript
Storageexpo-sqlite
Remindersexpo-notifications
Time inputNative date/time picker

Run locally

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.

Build an installable APK

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.

Project structure

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.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request. Report security-sensitive issues according to SECURITY.md.

License

HabbitDot is open source under the MIT License.

Contributors

shivardev

4 commits

Languages

TypeScript

100.0%