Consistently.

Privacy Policy

Last updated: 8 November 2026

Consistently is a habit tracker. It stores the habits you create and the days you mark them done, so it can show them back to you. This page says exactly what is collected, where it goes, and how to get rid of it.

The short version. Your habit data is stored so the app works across your devices. It is not sold, not shared with advertisers, and not used to build a profile of you. The only third parties involved are the services that run the app: Google (accounts, database, push notifications, analytics), Cloudflare (hosting) and Brevo (the occasional email). You can delete everything from within the app.

Who is responsible

Consistently (consistently.app) is a product of Hevin Design (ABN 58 368 892 845), the registered business name of Michael Paul Francis Piras, a sole trader based in New South Wales, Australia. Michael Paul Francis Piras, trading as Hevin Design, is responsible for the personal information described on this page.

Questions, requests, or complaints: contact@consistently.app.

What is collected

Account information

When you create an account, Firebase Authentication (Google) stores your email address and a unique account identifier. If you sign in with Google, it also receives your Google display name and profile photo. Passwords are handled entirely by Firebase and are never visible to Consistently.

Your habit records

This is the substance of the app, and it is stored so the app can function:

You can use Consistently without an account. Your records are then kept only in your browser's storage on that device and are never sent to us. If you later create an account or log in, the records on that device are added to your account and synced as described below. Clearing your browser's data for the site removes records kept this way, and we cannot recover them.

If you answer the “what made you stop?” question

After about two weeks without tracking anything, or when you start deleting your account, the app may ask one optional question about why. If you answer, your choice and any text you write are stored with your account identifier. When you delete your account, only the fixed-choice reason and the date are kept, with no account identifier and none of the text you wrote.

Optional details you choose to add

Notifications

If you turn reminders on, a Firebase Cloud Messaging token for that device is stored, along with the times you asked to be reminded. If you enable daily summaries, a count of how many things are outstanding today (and their names) is stored so the evening summary can say something useful. Turning notifications off removes this.

Usage analytics

Google Analytics for Firebase (Firebase's built-in analytics, built on Google Analytics 4) records events about how the app is used — for example that a task was created, that onboarding finished, or that the Progress screen was opened. These events record that something happened, not the content: the name of a habit, the text of a log, or anything else you have typed is never sent to analytics. Each account has a random analytics ID, so visits from your phone and your laptop count as one person. It is not your account identifier or your email, and nothing in Analytics links it back to either. Without an account there is no such ID, and each device simply counts separately. Google receives your IP address as part of any web request, which it uses for coarse location (typically country level) and then discards. Google signals, ad personalisation and data sharing are turned off for this property, and Google Analytics keeps the data for the shortest period it allows (2 months). A copy of the same events is exported to Google BigQuery, where we analyse it; each day's events there are deleted automatically 14 months after that day. Events recorded before 7 November 2026 carried the account identifier instead; it has been removed from that older data.

Turning it off: Settings → About → Share usage data. This stops usage events from this device straight away. Analytics data is never sold and never used for ads.

The events recorded, grouped by what they cover:

Crash reports — a separate category from usage analytics

If the app crashes, two further events, app_crashed and exception, are sent so a real crash can actually be diagnosed and fixed. Grouping it with ordinary usage analytics above would understate what it can contain, so it is called out on its own. It carries:

A fuller crash report is also saved in your account, separately from Analytics, so a crash can be fixed: the error name and message (up to 2,000 characters), the technical stack trace, the component that crashed, the app build, and the number of habits, routines and goals you had at the time (counts only, never their names). It is stored with your account and deleted with it.

This is meant to be a technical message — something like "Cannot read properties of undefined" — not your content. In the large majority of cases it is exactly that. But we cannot guarantee it always will be: JavaScript error messages occasionally echo back a fragment of whatever data the code was working with when it failed — for example a malformed date or a corrupted local value — and in a rare crash that fragment could in principle include something you entered. We are stating this plainly rather than claiming a guarantee we cannot actually make from the code.

Payments

Purchases are handled by Stripe. Card numbers and other payment details are entered directly into Stripe and never reach our servers — we only ever hold a record that a purchase happened and what it was for, not your card details. See the Terms of Service for the purchase model itself (one-time, permanently owned — not a subscription).

On your device

The app keeps a copy of your data in your browser's local storage so it works offline and stays fast. This is the primary copy; the cloud copy is a mirror of it. Signing out removes it from that browser.

What is not collected

Why it is collected

DataPurpose
Account detailsTo give you an account and sync across devices
Habit recordsTo provide the service you are using
Date of birthThe life-progress display, if you choose to enter one
Notification token and timesTo send reminders you asked for
Analytics eventsTo understand which parts of the app are used and where people get stuck
Crash reportsTo diagnose and fix real errors
Email addressAccount recovery, and occasional re-engagement email
Payment detailsTo process a purchase — held by Stripe, not us

Nothing here is collected for a purpose you would not expect from a habit tracker. Personal information is only used for the purpose it was collected for, or a directly related one you would reasonably anticipate.

Who it is shared with

These are service providers who process data on our behalf, not independent recipients:

Overseas disclosure

Consistently is operated from Australia. Your habit data — the substance of what the app stores — stays in Australia, in Google Cloud's Sydney region. Some processing does happen overseas: Firebase's server functions (reminders, re-engagement email) and the BigQuery project used to review crash and analytics data both run in the United States, and Google Analytics is believed to process data there too, though that is inferred rather than confirmed. The website itself is served through Cloudflare's global network. By using the app you consent to this overseas processing. Reasonable steps are taken to choose providers that handle personal information consistently with the Australian Privacy Principles, but overseas recipients are not subject to the Privacy Act 1988 and Australian law may not be enforceable against them.

How long it is kept

The 90-day figure above covers deletion markers specifically — it is not the whole retention story, which is why the other rows in this list exist as separate figures rather than being folded into it.

Your choices and rights

In the app

Access, correction and complaints

Under the Australian Privacy Principles you may ask for access to the personal information held about you, and ask for it to be corrected if it is wrong. Most of it is visible and editable in the app already; for anything else, email contact@consistently.app and you will get a response within 30 days.

If you are unhappy with how a privacy matter has been handled, raise it at that address first. If the response does not resolve it, you can complain to the Office of the Australian Information Commissioner (OAIC).

Consistently has users outside Australia. If you are in the UK or EEA, the rights under UK/EU data protection law — access, correction, erasure, restriction, objection, and data portability — are honoured at the same address, and you may complain to your local supervisory authority. This is stated as a matter of practice rather than because a solo Australian project necessarily falls within those regimes.

Children

Consistently is not directed at children under 13, and accounts should not be created by them. If you believe a child has created an account, contact us and it will be removed.

Security

Data is transmitted over HTTPS and stored on Google Cloud infrastructure. Database rules restrict each account's records to that account. No system is perfectly secure, and this is a small independent project rather than a company with a security team — that is worth knowing when deciding what to record in it.

Changes

This policy may change as the app does. The date at the top shows when it last changed. Material changes will be announced in the app.