Habit Tracker Privacy Policy
Last updated: November 7, 2026
Habit Tracker is an early prototype. This policy describes the data it stores and who can see it.
Signing in with Google
The app requires you to sign in with Google. It requests only the OpenID Connect scopes openid, email and profile. Google tells the app your Google account’s stable identifier, your verified email address and your name. The app does not request access to Google Drive, Calendar or any other Google service, and it does not use your profile picture. Sign-in is also subject to Google’s own privacy policy.
Your browser keeps a signed, HttpOnly session cookie that lasts up to 12 hours or until you choose Sign out in Settings, which removes it from that browser. Signing out on one device does not end sessions on other devices; they expire on their own. During sign-in the app also sets a temporary cookie (valid for 10 minutes, removed when sign-in finishes).
What the app stores
The app keeps the following in a database (Cloudflare D1):
- Your account: your Google account identifier, email address, name, the animal avatar you picked, the time you first signed in and the time you last signed in. These are updated each time you sign in.
- Your habits: the title of each habit you add, the icon you pick for it, when you added it, and who added it, together with its plan: how often it repeats, the days or weekly target, the start date, the plan length, and an optional time of day. A personal habit is linked only to you.
- Your check-ins: each time you mark a habit done, the calendar date you marked and the moment you did it. Undoing a check-in deletes it. Dates are your own calendar dates, worked out from the timezone your device sends with each request; the timezone itself is not stored.
- Notifications on your devices: only if you turn them on in Settings, the address your browser’s push service gave this device and the two keys needed to encrypt a notification for it. This is removed when you sign out, turn notifications off, or the push service says the device is gone.
- Group habit updates: when a member completes a group habit for today, the other members get a notice saying who did it and which habit. It records the member, the habit, the day and who it was for, and is kept for 30 days like messages.
- Messages between group members: when a member sends another member one of the app’s ready-made encouragement messages, the app stores which message it was (not any text typed by anyone), who sent it, who received it, which group habit it was about, when it was sent and when the recipient opened it.
- Your groups: each group’s name, who created it, who belongs to it and when they joined, plus a number that counts how many times its invite link has been reset. The invite link itself is not stored: the app works it out on demand from the group and a secret kept on the server.
The app does not store locations, contacts or payment information. If you change the timezone setting, that choice is saved only in your browser’s local storage and is not sent to the app.
Saved data in your browser
So that moving around the app does not ask the server for the same information again, your browser keeps a copy of what the app last showed you (your habits, groups, progress, avatar and received messages) in its local storage on that device. It is labelled with a random identifier for your account, never your email address. It holds no password, no session token and no invite link. It is updated when you change something and when the server signals that something changed in your groups, and it is removed when you choose Sign out, when the server ends your session, and when a different person signs in on the same device. If you are offline, the app shows this saved copy and says so; changes you make while offline are not saved and the app tells you that. Clearing your browser’s site data removes it too.
Live updates and notifications
While the app is open it keeps a connection to each of your groups so that changes other members make show up without refreshing. That connection carries only a signal that something changed (which group and habit), never names, habit titles, progress or messages; the app then asks for what it needs in the normal way. The server checks your sign-in and that you are a member of the group before it opens the connection, and closes it if you leave the group.
If you turn notifications on, the server sends each notification (the sender’s name, the message or the completed habit’s name) encrypted for your device through your browser’s push service (Google, Mozilla, Apple or Microsoft, depending on the browser). The push service can see that a notification was sent to your device and when, but cannot read it. A small background script in your browser, which does not store anything or handle other requests, shows it.
Who can sign in
This is a private app. Only Google accounts approved by the person who runs it can sign in; other accounts are turned away after Google confirms who they are, and nothing about them is saved. You sign in on Google’s own page, and the app never receives your Google password.
Who can see your data
- Personal habits and your check-ins on them are visible only to you in the app.
- Group members can see the group’s name, the display names and avatars of the other members, and the habits that any member adds to the group, including the name of the member who added each one. For a group habit they can also see each member’s check-ins and progress: which days were done or missed, completion rate and streaks. Members cannot see each other’s email addresses or personal habits.
- Group habit updates (“Ahmet completed Read 10 pages today”) go to the other members of that group, never for personal habits, and never to the person who did it.
- Messages a member sends you can be seen only by you and the person who sent it. Nothing is sent to a whole group, nothing is sent automatically, and no one else in the group can see that a message was sent. The sender can see whether you have opened it. A sender can send you at most a few messages a day.
- People who are not in a group cannot see it, except that anyone who obtains its invite link can join it (see below).
- The person who runs this app and its Cloudflare account can access everything in the database.
Invite links
A group is joined with an invite link, which any member can copy from the group page and share themselves (for example in a message). The app never sends invitations. Anyone who has the link and signs in with an approved account can join the group, so share it only with people you want in it. The link stays the same until the group’s creator resets it, which stops every earlier link from working; resetting does not remove people who already joined. If you open a link while signed out, the app remembers the invitation in a cookie on your device for up to an hour so it can bring you back to it after you sign in.
Retention and deletion
Data is kept until it is deleted. There is not yet a way to delete a single habit or your account; to ask for your data to be deleted, contact the address below.
- Leaving a group: any member except the owner can leave. Your check-ins on that group’s habits and the messages you sent or received in it are deleted. Habits you added stay in the group for the others, and become the owner’s. Other members’ check-ins are not touched, and your personal habits are not affected.
- Deleting a group: the group’s owner can delete it. This permanently deletes the group, its habits, every member’s check-ins on those habits, its memberships and its messages. Members’ personal habits and accounts are not affected. It cannot be undone.
- Messages and group habit updates are shown and kept for 30 days.
- Notifications: turning them off, or signing out, removes your device’s subscription from the app.
Other data
The app does not use analytics, advertising trackers or third-party cookies. This policy will be updated before features that store more data are enabled.
Service providers and contact
The app runs on Cloudflare Workers. Cloudflare hosts the app and its database. It processes requests, including the session cookie your browser sends, and may keep request and security information under its own privacy terms. Google receives your sign-in request and processes it under its own terms.
For privacy questions, contact gahmetanx@gmail.com.