kouider

Home

Resume

Portfolio

Let's Talk
kouider
HTML5 · CSS3 · JavaScript · React · Angular · PHP · Laravel · Node.js · Docker · Python · WordPress    

HabitOrbit — Offline-First Habit Tracker

I built HabitOrbit, an offline-first habit tracker and streak app, and it lives at habit-loop.kouider.de. This post covers why I built it, how it handles storage and sync, and what makes it different from the usual habit apps.

Why I built it

Before HabitOrbit I tracked my habits with Loop Habit Tracker, the open-source app that inspired this project. After almost two months of consistent tracking, my phone fell into water — and every single entry was gone. An export would have saved the data, but exporting by hand every day is not something a real user does, and a local backup dies together with the phone. That loss is the reason sync and cloud storage are core features here: the streak survives the device.

Offline-first by design

The core decision was that tracking a habit should never depend on a connection. Habits, entries, streaks and badges are stored on the device, so logging a day works in the subway, in a dead zone, or on a plane. When the connection comes back, changes sync in the background without any action from the user.

Flexible cycles, not just dailies

Habits are not locked to daily checkboxes. A habit can run daily, weekly, monthly or on a custom interval, with a target count that is a simple checkbox, a number, or a limit. That covers everything from drinking water to a five-day workout split, and the gradual score rewards consistency rather than perfection — one badge per completed cycle, streaks across consecutive wins.

Private by design

There are no ads and no tracking. The data belongs to the person keeping the habit, and it can be exported anytime as open JSON or deleted completely. Not having a business model that depends on user data keeps the privacy story simple to maintain.

Sync with conflict handling

Multi-device sync is built in: signing in on another device pulls the same habits, and when two devices edit the same day, a server-state-wins policy resolves the conflict while offline edits stay queued until reconnection. It is a pragmatic trade-off — predictable, and nothing is lost.

Outcome

HabitOrbit is a free, ad-free, offline-first habit tracker running at habit-loop.kouider.de — flexible cycles, streaks and badges, private storage, open JSON export, and four languages, inspired by the Loop Habit Tracker.