Privacy policy

Last updated September 24, 2026

Summary

Duck Habits is free, with no ads and no tracking. Your habits, entries, agenda events and goals are stored on your own device. We do not sell, share or analyse your data.

The account is optional. Without an account, none of your data leaves the device.

Who is responsible

This app is developed by Raul Passos Gardini, the data controller under the LGPD (Brazilian Law 13,709/2018) and the GDPR (EU General Data Protection Regulation). Contact for any privacy matter, including as data protection officer: rap.gardini@gmail.com.

Data stored on your device

Everything you enter in the app (habits, daily entries, agenda events, goals, the optional name used in the greeting and preferences such as theme and language) is stored locally, in a database on the device or browser itself.

This data is used only to run the app: showing your habits, computing streaks and statistics, drawing the widgets and scheduling reminders.

On phones, it lives in the app's private storage, which other apps cannot access and which the system itself encrypts when the device has a passcode (iOS and Android). The app's database has no extra encryption layer of its own. In the web version, data stays in this site's browser storage.

You can turn on the app lock in Account > Privacy: it asks for Face ID, fingerprint or the device passcode to open the app and hides the content in the recent apps list. Biometrics are checked by the system itself; the app never receives your fingerprint or face. The app's error logs do not include the content of your data.

Account and sync (optional)

If you create an account, we collect your e-mail and a password (stored encrypted by the authentication provider) and send a copy of your app data to the cloud, only to sync it between your devices and protect it against loss. The account gets a random internal identifier, which is not used for any other purpose.

The cloud service used is Supabase (supabase.com), acting as data processor. The connection is encrypted and each account can only access its own data. To protect accounts against abuse, Supabase records technical access data, such as IP address and sign-in time.

On phones, the account session is kept in the system's secure storage (Keychain on iPhone, Keystore on Android), never as plain text.

When you create an account or change your password, the app checks whether the chosen password has appeared in known data breaches, using the free Have I Been Pwned service (haveibeenpwned.com). The password is never sent: only the first 5 characters of a cryptographic digest of it (SHA-1 hash), shared by hundreds of different passwords, and the final comparison happens on the device.

You can sign out at any time: the account's data is removed from this device, stays in the cloud and comes back when you sign in again. You can also delete the account in Account > Account and sync > Delete account, which permanently deletes the account and all data stored in the cloud.

Why we process your data (legal bases)

Account and sync data: to provide the service you asked for when creating the account (performance of a contract; LGPD art. 7, V, and GDPR art. 6(1)(b)).

Technical access data, the leaked-password check and cloud backups: to keep accounts secure and prevent data loss (legitimate interest; LGPD art. 7, IX, and GDPR art. 6(1)(f)).

We make no automated decisions about you and build no profiles.

Who else receives data

Only with an account: Supabase (cloud database and authentication) and GitHub (keeps a weekly backup of the cloud database, encrypted with a key only the developer holds). When creating or changing a password: Have I Been Pwned, only the hash fragment described above.

The web version and app updates are delivered by Expo (expo.dev), which, like any server, records technical access data (such as IP address) to run the service.

These companies may process data outside Brazil and the European Union (for example, in the United States). We only use providers that contractually commit to data protection obligations compatible with the LGPD and the GDPR, such as the standard contractual clauses.

We do not sell or share data with anyone else, and would only hand it to an authority under a legal order.

How long we keep it

On the device: until you delete the data, sign out or uninstall the app.

In the cloud: while the account exists. The app also keeps the 3 most recent weekly backups in your account, which you can see and restore in the Account tab. When you delete the account, all of this is erased at once; only the encrypted database backups (GitHub) last up to 90 days, until they are deleted automatically, and are not used for anything else.

Notifications

Reminders are local notifications, scheduled by the device itself. We use no notification server and no push identifiers.

Backup

The backup feature creates a file with your data, which you save or share wherever you want. The file is plain text, without encryption: keep it somewhere safe. We have no access to that file.

What we do not do

We show no ads, use no analytics or tracking tools, collect no location, contacts, photos or advertising identifiers, and never sell data.

Your rights (LGPD and GDPR)

You can ask for confirmation that we process your data, access, correct, export (portability) and delete your data, learn who it is shared with, and object to or restrict its processing.

Almost everything can be done in the app itself, at any time: export in Account > Backup, correct by editing the items, delete in Account > Delete data and, for cloud data, in Account > Account and sync > Delete account. For anything else, write to the e-mail above: we reply within 15 days.

You can also lodge a complaint with Brazil's data protection authority (ANPD, gov.br/anpd) or, in the European Union, with the data protection authority of your country.

How to delete your account

In the app (phone or web, at habits-raul.expo.app): Account > Account and sync > Delete account. The account and all its cloud data are deleted at once.

Without access to the app: send an e-mail to rap.gardini@gmail.com from the account's address asking for deletion. It is done within 15 days and confirmed by e-mail.

What is deleted: e-mail, password, account identifier, all synced data (habits, entries, agenda, goals, name and preferences) and the account's backups. What remains: nothing is used after deletion; only the encrypted backups of the cloud database last up to 90 days, until they are deleted automatically. Data stored on the device stays there until you delete it (Account > Delete data) or uninstall the app.

Children

The app is not directed to children under 13 and does not knowingly collect their data. Children under 13 should not create an account; if that happens, write to the e-mail above and the account will be deleted.

Changes

If this policy changes, the new version will be published on this page and inside the app, with the update date.