weft

Weft

Weft (formerly Sprout) is a small, open-source habit tracker for Android. It keeps your habits and notes on your phone, works without an account, and the APK is about 3 MB.

No ads · No tracking · No account · Free and open source (GPL v3) · Website

Get it on GitHub Get it on Obtainium

Today Log an amount Week Overall
Today Log an amount Week view Overall heatmap
Habit detail Journal Insights Dark mode
Habit detail Journal Insights Dark mode

More: welcome, filter by habit, date range, new habit, settings, Google Drive backup, font.

Widgets

Today This week Today strip Streak
Today widget This week widget Today strip widget Streak widget

What it does

Each day, every habit is done, partly done (with an amount such as 15 of 20 pages) or skipped. Swipe right to mark a habit done, swipe left to skip it, tap its circle to toggle it, or press and hold to log an amount and add a note. Swiping the other way undoes a swipe. Days you skip are left out of your score, so one bad day doesn’t sink the week.

You can also:

docs/FEATURES.md describes each feature in detail.

Download

Download weft-vX.Y.Z-github.apk from the latest GitHub release. There are three builds:

Obtainium: tap the Obtainium badge above on your phone, or add https://github.com/nisabmohd/weft in Obtainium. When it asks which APK to install, pick the foss one; Obtainium keeps it up to date. All GitHub builds are signed with the same key, so you can switch between them without losing your data.

Weft runs on Android 8.0 and later.

Privacy

Weft has no ads, no analytics and no trackers. It asks for two permissions: notifications, for reminders, and “Alarms & reminders” if you want them to arrive on the minute. Your data only leaves the phone when you export it or turn on Google Drive backup, which writes to a hidden folder in your own Drive that only Weft can see. See the privacy policy (PRIVACY.md).

Build

You need JDK 17 or later and the Android SDK (API 36).

./gradlew :app:assembleFossDebug
./gradlew :app:assemblePlayRelease

Kotlin, Jetpack Compose and Material 3, with Room, DataStore, Navigation Compose and Glance. Charts are drawn with Compose Canvas. No dependency injection, chart or image libraries.

Contributing

See CONTRIBUTING.md for setup and testing, and AGENTS.md for the rules every change follows. Open tasks are in TODO.md.

Support

Weft is free and has no ads. I build it because I enjoy it. If it helps you, you can sponsor me on GitHub or star the repo.

Contact

Weft is made by mid apps (Nisab Mohd & contributors). Questions, ideas or press: hello.midapps@gmail.com. Bugs and feature requests: GitHub Issues.

License

Weft is licensed under the GNU General Public License v3.0. The bundled fonts (Space Grotesk, Outfit, Lexend and Atkinson Hyperlegible Next) use the SIL Open Font License 1.1; see licenses/fonts. The Weft mark (the sock in the app icon) is from Tabler Icons, MIT License, and the app’s icons are Solar by 480 Design, CC BY 4.0; see licenses/icons.