DenzaPlay Life Privacy Policy

Here you can read what DenzaPlay Life apps store, where your data goes if you sign in, and how you stay in control of it.

Effective date:

In short

You can use every DenzaPlay Life app without signing in. Your data is stored on your own device or in your own browser.

Signing in with Google is optional. If you sign in, a copy of your app content syncs to Google Cloud Firestore in Jakarta (asia-southeast2). Through the app, only your account can read or change it. One authorized administrator at PT Denzaplay Indonesia has technical access, but does not view it unless you ask for support or deletion, or the law requires it.

Your sign-in profile data (name, email, profile photo and sign-in times) is handled by Google through Firebase Authentication and processed primarily in the United States.

On Android, Kendi, Hafalan, Fotokopi and Bobo don't sync your entries yet. On the web, every app syncs its content.

Tamu Bulanan (menstrual cycle) data only syncs if you turn on its own consent switch. The switch is off by default and applies per device.

No ads, and we don't add any analytics or crash-reporting SDK. One exception you should know about: Fotokopi on Android uses Google ML Kit for OCR, and ML Kit sends diagnostic and usage statistics to Google. Your document images and text are not sent.

The apps are intended for users aged 13 and up. If you are under 18, you need a parent's or guardian's permission before signing in and syncing data.

You can delete your account and the cloud data for all DenzaPlay Life apps at any time from the Account screen, or by emailing [email protected]. This is permanent and there are no backups. Data on your device is not deleted.

Who we are

DenzaPlay Life is a set of free apps for Android (packages com.denzaplay.life.*) and the web (https://life.denzaplay.dev/). The apps available right now:

Jam Puasa (fasting timer)

Rajin (habit tracker)

Kendi (water reminder)

Curhat (mood journal)

Otot Kawat (gym log)

Tamu Bulanan (period calendar)

Hafalan (flashcards)

Fotokopi (document scanner to PDF)

Beres (to-do list)

Celengan (money tracker)

Bobo (sleep alarm and log)

Operator and personal data controller: PT Denzaplay Indonesia, Indonesia.

Contact: [email protected]

This policy is written with reference to Indonesia's Personal Data Protection Law, Law No. 27 of 2022 (UU PDP), and Google Play's User Data policy.

1. Data on your device

Everything you record is stored locally: on Android in the app's database (Room), the app's private files and app settings; on the web in your browser's storage (IndexedDB and localStorage). As long as you don't sign in, this data is not sent to our servers.

Each app also keeps a few small settings on your device: language, light or dark theme, a flag showing you've finished the app intro, and, once you've accepted the sign-in terms, the consent version and when you gave it. This consent record is not uploaded.

PIN lock. Celengan, Curhat and Tamu Bulanan can be locked with a PIN. Only a fingerprint of the PIN (a SHA-256 hash) is stored, never the PIN itself. On Android you can also unlock with biometrics; the fingerprint or face check is done by your device.

What each app stores:

Jam Puasa: fasting sessions (start, end, target hours, preset, note, mode, city) and reminder settings.

Rajin: habits (name, description, schedule, reminder) and daily check-ins (value, note, whether skipped).

Kendi: drink log (time, amount in ml, drink type), favourite cups, and settings such as daily goal, body weight, activity level, wake and sleep times, Ramadan mode and city.

Curhat: journal entries (date, time, mood, activities, note), your custom moods and activities, and reminder settings.

Otot Kawat: exercises, routines, sets (reps, weight, RPE) and body measurements (weight, waist, body fat percentage, arm).

Tamu Bulanan: period days and flow, symptoms, daily logs (mood, discharge, note), your custom categories, and reminder settings.

Hafalan: decks and cards (front and back, review schedule), plus study and reminder settings.

Fotokopi: folders, documents and pages (scanned image, OCR text, order, filter, rotation, label). On Android, scanned images are saved as files in the app's private storage.

Beres: lists, tasks (title, note, due date, reminder, priority, tags, subtasks) and filters.

Celengan: categories, wallets, transactions (time, type, amount, category, wallet, note, receipt photo), budgets, recurring transactions, savings goals, deposits and favourite transactions. On Android, receipt photos are saved as files in the app's private storage.

Bobo: sleep log (bedtime, wake time, quality), alarms (schedule, mission, vibration, sahur alarm) and bedtime settings.

Device permissions (Android)

All apps:

Internet and network state: for optional sign-in and sync (Firebase and Google Play services).

Notifications: for local reminders and alarms.

Biometrics and fingerprint: included by the screen-lock library, but only used by Celengan, Curhat and Tamu Bulanan to unlock.

Keep the device awake, foreground service, and run at startup: so reminders keep working and are rescheduled after a restart.

Read Google services configuration: needed by Google Play services and Firebase.

Per-app additions:

Exact alarms: Jam Puasa, Rajin, Kendi, Curhat, Hafalan, Tamu Bulanan, Beres and Bobo, for reminders and alarms.

Camera: Fotokopi (scanning documents; a camera is not required on the device) and Celengan (photographing receipts).

Bobo: also vibration, full-screen alarms, and a request to ignore battery optimisation, so sleep and sahur alarms still ring.

Otot Kawat: only a local notification for the rest timer.

No app asks for access to your contacts, precise location, SMS, or all the media on your device. Files are only opened or saved through a file picker you use yourself.

Fotokopi: text recognition (OCR)

Android: OCR uses Google ML Kit, running on your device. Document images and OCR text stay on your device. However, ML Kit sends diagnostic and usage statistics to Google: device and app info, performance metrics, API configuration, event types, error codes and installation identifiers. Google says this data is used for ML Kit diagnostics and usage analytics and is not shared by Google with third parties. There is no setting to turn this reporting off. Google's explanation: https://developers.google.com/ml-kit/android-data-disclosure

Web: OCR uses Tesseract.js. The first time you run OCR, your browser downloads the script and language model from jsDelivr (a CDN), so this step needs internet once. After that, text recognition runs in your browser. Document images are not sent to jsDelivr.

2. Data that syncs if you sign in

Signing in is optional. The only sign-in option is a Google account, through Firebase Authentication. Facebook and X sign-in are not active.

Basis for processing: we sync your data based on your consent, which you give on the Account screen before signing in. You can take it back at any time by signing out or deleting your account.

What we receive from Google

The apps only request Google's standard sign-in permissions (openid, email and profile). They do not ask for access to your contacts, Drive, calendar or any other Google data.

Firebase Authentication automatically keeps this account record (this is how Firebase works, not our app code): a unique user ID (uid), your Google email address, display name, profile photo URL, sign-in provider data, when the account was created, and when you last signed in. This data is processed by Google, primarily in the United States (see section 4).

The apps do not store your name, email or profile photo on your device or in Firestore. Your name and email are only shown on the Account screen. Your profile photo is not used at all. We never receive your Google password.

What syncs to the cloud

For each app, sync stores one full copy (a snapshot) of that app's content in Firestore under your uid, plus the last sync time, item count and last-changed time. Each sync replaces the previous copy.

When sync runs. Sync runs when you tap "Sinkron sekarang" (Sync now), once automatically right after you sign in, and once right after you turn on Tamu Bulanan consent. Nothing syncs in the background.

How data is merged. Between syncs, your device holds the working copy. When you sync, the app compares the copy on your device with the copy in the cloud and keeps whichever was changed most recently. If the times are exactly equal, the device's copy wins. The result is saved to both the cloud and your device. Because each app's whole copy is compared, changes on a device with an older copy can be overwritten by a newer copy from another device.

Firebase also keeps a temporary copy (cache) of your cloud data on your device or in your browser. If a sync is interrupted because you're offline, Firebase may finish sending it once you're back online.

What syncs, per app:

Jam Puasa, Rajin, Curhat, Otot Kawat, Beres: Android: All app content; Web: All app content.

Tamu Bulanan: Android: All content, only when its consent switch is on; Web: All content, only when its consent switch is on.

Celengan: Android: All content; receipt photos are not included, only their file location on the device; Web: All content, including receipt photos stored with transactions.

Kendi, Hafalan, Bobo: Android: No entries sync yet, only a marker with the app's name; Web: All app content.

Fotokopi: Android: Nothing syncs yet, including images and OCR text; Web: All content, including scanned page images and OCR text.

Your Google profile is never copied into synced data.

3. Sensitive data

Some apps hold very personal information. We want you to know exactly what happens to it.

Tamu Bulanan (health data)

Tamu Bulanan stores menstrual cycle data, symptoms and daily logs. Under UU PDP, health data is specific personal data.

If you don't sign in, this data stays only on your device, and you can lock it with a PIN.

Signing in alone does not sync it. Sync only starts after you turn on "Sync Tamu Bulanan data" on the Account screen and confirm. The switch is off by default.

The switch applies per device and is stored only on that device, not in Firebase. A device with the switch off never uploads or downloads Tamu Bulanan data.

If you turn it off, sync stops on that device and all Tamu Bulanan data in the cloud for your account is deleted. Entries on your device stay.

Your other devices keep their own entries. If the switch is still on at another device, that device will upload its Tamu Bulanan data again at its next sync. To stop completely, turn the switch off on all your devices.

Celengan (money data)

Celengan stores money data: wallets, transactions, budgets, savings goals and receipt photos. It can be locked with a PIN, and syncs together with your other app data after you sign in (see the table in section 2).

Curhat (mood journal)

Curhat stores mood entries, activities and personal notes. It can be locked with a PIN, and syncs together with your other app data after you sign in.

Fotokopi (scanned documents)

Documents you scan can contain personal data, such as an ID card (KTP). On the web, page images and OCR text sync if you sign in. On Android, nothing syncs yet, and the images and text never leave your device (see the ML Kit note in section 1).

For all sensitive data

If synced, the copy is stored in Firestore in Jakarta. Through the app, only your account can read or change it. Administrator access is explained in section 5.

This data is not used for ads, not analysed, and not sold or shared with anyone else.

You can remove it from the cloud at any time with "Hapus akun & data cloud" (Delete account & cloud data).

4. Where data is stored

Local data: on your device or in your browser.

Synced app content: Google Cloud Firestore, region asia-southeast2 (Jakarta, Indonesia), with no profile data.

Sign-in profile data: Firebase Authentication. This service is not tied to a region. Google processes it on its infrastructure, primarily in the United States.

Transfers outside Indonesia

If you sign in, your profile data (uid, email, display name, profile photo URL, sign-in provider data, account creation time and last sign-in time) is sent to and processed by Google LLC in the United States, as our data processor through Firebase. The app content you sync stays stored in Jakarta.

5. Who can access your data

You. Firestore security rules only let the account signed in with the matching uid read and write its own data. Other users cannot see your data.

Google/Firebase stores and processes this data as our service provider.

PT Denzaplay Indonesia: only one authorized administrator at PT Denzaplay Indonesia has access to the Firebase console. As project owner, this administrator can technically access stored data. We do not view or use your content, except when you ask for support or deletion, or when the law requires it.

We do not sell your data and do not share it for advertising.

6. Third parties

We use services from Google LLC (including Firebase) as our data processors:

Google Sign-In (through Credential Manager on Android) to sign in with your Google account.

Firebase Authentication to manage your account. Processed by Google LLC, primarily in the United States.

Cloud Firestore to store synced data, in the Jakarta region.

Google ML Kit for Fotokopi OCR on Android. Text recognition runs on your device, but ML Kit sends diagnostic and usage statistics to Google (see section 1). Document images and text are not sent.

On the web, your browser also downloads code from:

Google (gstatic.com): the Firebase library, only for sign-in and sync.

jsDelivr: Tesseract.js, only when you run OCR in Fotokopi.

As with opening any website, these providers receive your browser's request, including your IP address. Your entries are not sent to them.

We don't add any advertising, analytics (including Google Analytics) or crash-reporting SDK to the Android or web apps. The only usage statistics sent are from Google ML Kit in Fotokopi on Android, as described above.

Google's privacy policy: https://policies.google.com/privacy

7. Export and backup

You can save your own copy of your data as files, wherever you choose. Exporting does not upload anything to our servers.

Jam Puasa: JSON

Rajin: CSV and JSON

Kendi: CSV

Curhat: JSON, CSV and PDF

Otot Kawat: CSV and JSON

Tamu Bulanan: JSON, CSV and a PDF for your doctor

Hafalan: no export yet; you can import cards from CSV, TSV or pasted text

Fotokopi: PDF or JPG; on Android also a JSON backup with OCR text and document info (no images)

Beres: CSV

Celengan: JSON and CSV (on the web, the JSON file leaves out receipt photos)

Bobo: CSV

8. Signing out and deleting your account

Sign out. Your session ends and sync stops. Data on your device stays and you can keep using it. Data already in the cloud stays there until you delete your account.

Hapus akun & data cloud (Delete account & cloud data). One account is used for all DenzaPlay Life apps. If you tap "Hapus akun & data cloud" in any app, the cloud data for all DenzaPlay Life apps on that account is deleted, and then your Firebase account is deleted. This is permanent. Because there are no backups, deleted cloud data cannot be recovered.

Firebase Authentication is run by Google. After your account is deleted, Google may keep or remove the account record on its servers according to its own policies.

Data on your device after deletion. Data on your device or in your browser is not deleted: entries, scanned images and receipt photos, settings, PIN, and reminders already scheduled all stay. To remove them, delete entries in the app, clear the app's data in Android settings, uninstall the app, or clear the site's data in your browser.

If you can no longer open the app, you can also request deletion of your account and cloud data by emailing [email protected] from the Google email address you signed in with.

Deleting a single entry. When you delete an entry in an app, it is removed from your device straight away. In the cloud, it disappears the next time you sync, because the new copy no longer contains it. Until then, the old cloud copy still includes that entry. If the cloud copy is newer (for example from another device), the cloud copy is kept, so a deleted entry can come back.

9. How long data is kept

Nothing is deleted automatically.

Cloud data is kept until you delete your account, or, for Tamu Bulanan data only, until you turn off its sync consent.

There are no backups of cloud data.

Local data stays on your device until you delete it, clear the app's data, or uninstall the app.

10. Your rights over your personal data

Under UU PDP, your rights include the right to:

get clear information about the data we process and why;

access and get a copy of your personal data;

correct inaccurate data;

ask for your data to be deleted and processing to end;

take back consent you have given;

get your personal data in a commonly used format.

You can use most of these rights directly in the apps: your data is on your device, you can edit and export it, you can turn off Tamu Bulanan sync, and you can delete your account with "Hapus akun & data cloud". For anything else, email [email protected].

11. Age of users

DenzaPlay Life apps are intended for users aged 13 and up.

Signing in and syncing are optional. Every app can be used without signing in, and as long as you don't sign in, the apps don't send your entries to our servers.

Under UU PDP, if you are under 18, you need a parent's or guardian's consent before signing in with Google and syncing data.

Parents or guardians with questions, or who want their child's data deleted, can contact [email protected].

12. Changes to this policy

If this policy changes, we will post the new version on this page (https://denzaplay.dev/en/privacy) and update the "Effective date" above. Changes are not announced inside the apps, so please check this page from time to time.

13. Contact us

Questions, or want to use your rights over your personal data? Email [email protected].

PT Denzaplay Indonesia, Indonesia