finds.dev← search

// the find

FriesI23/mhabit

★ 1,430 · Dart · Apache-2.0 · updated Jul 2026

Open-source Flutter habit tracker with smart scoring, WebDAV sync, local-first storage, privacy-focused design, and support for Android, iOS, Windows, macOS, and Linux.

Table Habit is a local-first habit tracker built in Flutter, targeting people who want to own their data and avoid cloud accounts. It runs on all five major platforms and syncs via WebDAV, so you can use Nextcloud or any self-hosted server instead of a proprietary backend. The scoring model goes beyond streaks — it tracks consistency curves over time, with separate models for building versus breaking habits.

The WebDAV sync is a genuine design choice, not an afterthought — it supports Nextcloud, Koofr, and any self-hosted server, and the data never touches a third-party cloud unless you point it there. The CI pipeline covers all five platforms with separate build actions per target, and releases ship to Google Play, F-Droid, Flathub, the App Store, and the Microsoft Store simultaneously, which is real operational discipline for a solo project. Localization is handled through Weblate with 18+ languages and full RTL support, including proper per-platform string resources for Android rather than just ARB files. The Loop Habit Tracker CSV import means switching from that app doesn't mean losing history.

Provider as the state management layer is showing its age — a codebase this size with this many platforms would be easier to maintain with Riverpod or BLoC, and Provider's lack of compile-time safety becomes friction as the app grows. Home screen widgets are still in progress for both Android and iOS, which is a notable gap for a habit tracker since glanceability is the whole point of daily habits. The scoring model, while interesting, is underdocumented — you won't find a clear explanation of the math behind the growth curves without digging into source code, which makes it hard to trust or debug unexpected scores. WebDAV is the only sync backend and there's no conflict resolution strategy documented, so if you edit on two devices offline and sync, you're at the mercy of whatever the implementation does quietly.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →