compledo Privacy Policy

Effective date: 2026-08-09

Last updated: 2026-08-09


1. Who we are

compledo (“we”, “us”, “our”) is operated by Robert Mollentze, trading as Dev Cetera (ABN 86 282 501 686), an independent Australian software studio.

You can reach us at robert@dev-cetera.com for any privacy question, request, or complaint covered by this policy.

We provide a real-time shared organizer for individuals, couples, and families at https://compledo.app (the “Service”).

For the purposes of the EU and UK General Data Protection Regulation (GDPR / UK GDPR), we are the controller of the personal data we process about you when you use the Service. For the Australian Privacy Act 1988, we are an APP entity. For the California Consumer Privacy Act (CCPA / CPRA), we are a business.

2. Scope

This policy applies to personal data we process when you:

  • Visit https://compledo.app or any subdomain.
  • Sign up for, or use, the Service in anonymous mode or as a signed-in user.
  • Subscribe to compledo Premium.
  • Receive notifications from us (push, email).
  • Contact us by email or other support channel.

If a feature is described in this policy but is not yet available in the product, the description is a commitment about how we will handle that data when the feature ships, not a statement that we are already collecting it.

We collect only what is necessary to operate the Service. The table below lists every category of personal data we process today.

Category Examples Purpose Legal basis (GDPR)
Account identity Email address, password hash (via Firebase Auth), referral code, sign-up source, ban state, optional promo code redemption record. Authenticate you; provide the Service; protect against abuse; honor promotions. Performance of contract (Art. 6(1)(b)); legitimate interest in security (Art. 6(1)(f)).
User profile Name, avatar color, locale (BCP-47), timezone (IANA), notification preferences, role (owner / adult / kid). Show the right name to your group, schedule notifications at your local time, render the app in the right language. Performance of contract; legitimate interest in service quality.
AI programme profile (optional) Answers you choose to give the AI programme wizard that we remember for next time: sex ("prefer not to say" is always offered), age range, height, weight, fitness level, available equipment, injuries or limitations, dietary pattern, sleep schedule. Stored only when you answer the corresponding wizard question; each attribute (or the whole profile) can be cleared at any time, and it is deleted with your profile. Pre-fill AI wizard questions so you don't repeat yourself, and tailor generated programmes to you. Consent (you can decline or clear any answer); the profile is never required to use the app.
Content you create Items (todos and notes), routines, templates, lists, groups, dismissals, ticks, read receipts, tags you select, group invites, blocks. Provide the core organizer functionality; sync state across your devices and group members in real time. Performance of contract.
Billing & subscription Subscription state (plan, renewal, expiry), purchase and renewal events received from our subscription platform, promo code redemptions. We never see or store your payment card number — payment details are entered on RevenueCat's hosted checkout page and processed by its payment provider. Operate your compledo Premium subscription; unlock the features you paid for; keep required transaction records. Performance of contract (Art. 6(1)(b)); legal obligation for tax and accounting records (Art. 6(1)(c)).
Device & push tokens Firebase Cloud Messaging (FCM) push registration tokens. Deliver push notifications you have opted into. Consent for push notifications (Art. 6(1)(a)); performance of contract for the underlying device registration.
Check-ins One row per app open: timestamp, your local date, locale, timezone, the server region serving the request, a coarse platform label (Web / iOS / Android), a coarse surface label (Browser / PWA / Native), a random per-device identifier we generate on first run and store in your browser, and a daily-rotating salted hash of your network address. Compute usage streaks; recognise the device on future visits; spot unusual access patterns (e.g. a sudden new network shortly after a password change); schedule notifications correctly when you move across timezones. Legitimate interest in service operation, fraud prevention, and product analytics (Art. 6(1)(f)).
Audit log Append-only record of state-changing actions (who did what, when, to which entity), with action-specific metadata. Diagnose issues; investigate abuse reports; satisfy our own integrity controls. Legitimate interest in security and accountability (Art. 6(1)(f)); legal obligation where applicable (Art. 6(1)(c)).
Support communications Email content you send us, attachments, our replies. Respond to your request. Performance of contract; legitimate interest in providing support.
Product analytics Screen views and feature-usage events (via Google Analytics for Firebase), tied to a Firebase app-instance identifier and, when you are signed in, your account ID. No advertising identifiers, no cross-site tracking. Understand which features are used so we can improve the Service. Legitimate interest in product improvement (Art. 6(1)(f)); consent where your jurisdiction requires it for analytics storage.
AI-feature inputs The answers you type into the programme wizard (goal, experience level, equipment, schedule) and the text of in-app feedback you submit. Sent to Google Cloud's Vertex AI to draft your programme or to summarize and classify your feedback for triage. Not used to train models. Generate a programme draft you asked for; triage feedback. Performance of contract (the draft you requested); legitimate interest in support triage.

We do not collect: your IP address as a stored database value, your raw browser User-Agent string, geolocation derived from your IP, biometric data, government-issued IDs, payment card numbers, health information, advertising identifiers, or any inferred profile about you for advertising purposes.

3.1 What the check-in record looks like in detail

Because the check-in system is the most novel part of this policy, we describe it in plain language:

  • Each time you open compledo, the app sends a small record to our backend: the date you call “today” (in your timezone), your locale, your timezone, and three pseudonymous identifiers.
  • The first pseudonymous identifier is a random ID we generate the first time you use compledo on a given browser and store locally on your device. We never derive this ID from your hardware, fonts, screen size, or any other device characteristic. You can reset it at any time from Settings → Privacy → “Reset this device’s identifier”. Clearing your browser site data resets it automatically.
  • The second pair of identifiers is two platform buckets: Web / iOS / Android, and Browser / PWA / Native. These are buckets, not fingerprints.
  • The third identifier is a daily-rotating hash of your network address. Your raw IP address never enters our database. Our backend hashes it with a salt that we rotate every 24 hours; we keep salts for 30 days and then delete them, which makes older hashes permanently irreversible.
  • We use these fields to (a) compute streaks (“you opened compledo 7 days in a row”), (b) recognise this device on future visits, and (c) detect unusual access patterns.
  • Check-ins older than 400 days are automatically deleted by a daily background job. When you delete your account, all your check-ins are deleted immediately.
  • We do not collect check-ins for users marked as kid members. Streak and device-recognition features are not applied to under-13s. See §10 (Children).

3.2 Cookies and similar technologies

compledo is a web application. Cookies, localStorage, and IndexedDB are used to keep you signed in, remember your selected user profile, hold the random per-device identifier described above, cache your timeline so the app works offline, and queue changes made while offline — all strictly necessary to deliver the Service. In addition, Google Analytics for Firebase stores an app-instance identifier used for the product analytics described in §3. We do not use cookies for advertising or cross-site tracking. We do not currently present a cookie consent banner; where your jurisdiction requires consent for analytics storage, we will add one before relying on it.

The subscription checkout page at pay.rev.cat is operated by RevenueCat and sets its own strictly-necessary cookies under its own privacy policy.

4. Where we store and process data

Our backend runs on Google Cloud Run, our database on Google Cloud SQL (Postgres), and our authentication and push delivery on Firebase, all operated by Google LLC. The active region is australia-southeast1 (Sydney). The one exception is Vertex AI (the programme wizard and feedback triage), whose requests are processed in us-central1 (Iowa, USA) — see §5.

If you are located in the European Economic Area, the United Kingdom, or Switzerland, your data may be processed in regions outside your country. Where this involves a transfer to a country without an EU adequacy decision, we rely on the Standard Contractual Clauses in the relevant provider’s Data Processing Addendum.

5. Who we share data with

We share personal data only with:

Recipient What Why Safeguard
Google LLC (Firebase, Cloud Run, Cloud SQL, FCM) Almost all categories listed in §3 (as our hosting and infrastructure provider). To run the Service. Google Cloud Data Processing Addendum + Standard Contractual Clauses.
Google LLC (Google Analytics for Firebase) The product-analytics events described in §3: screen views and feature-usage events tied to an app-instance identifier and your account ID. To understand feature usage and improve the Service. Google Ads Data Processing Terms; advertising features and identifier sharing disabled.
Google LLC (Vertex AI) The AI-feature inputs described in §3: your programme-wizard answers and submitted feedback text. Processed in the us-central1 (Iowa, USA) region. Google does not use this data to train its models. To generate programme drafts and classify feedback. Google Cloud Data Processing Addendum + Standard Contractual Clauses.
RevenueCat, Inc. Your account ID (used as the subscription customer identifier), your email address (to pre-fill checkout), and your subscription state and purchase events. Payment card details are entered on RevenueCat’s hosted checkout and processed by its payment provider (Stripe); card numbers never reach our servers. To sell, manage, and reconcile compledo Premium subscriptions. RevenueCat Data Processing Addendum.
Law enforcement / regulators Only what we are legally required to disclose. Compliance with valid legal process. We will challenge over-broad requests and notify you where lawful.
A buyer or successor in interest Whatever applies to a corporate restructuring or sale. Business continuity. Notification to affected users; the buyer is bound by this policy or one substantially similar.

We do not sell your personal data. We do not share it for cross-context behavioural advertising. The only AI processing in the Service is the two Vertex AI features described above — drafting a programme when you ask for one, and summarizing/classifying feedback you submit. Your timeline content is never sent to an AI service.

6. Retention

Category Retention
Account, user profile, content you create While your account is active. On account closure the data is immediately hidden from the Service, then permanently erased after a 30-day grace window, subject to a further short window for backup eviction (≤ 90 days in total).
Billing & subscription records 7 years from the transaction, as required by tax and accounting law.
Check-ins 400 days, then automatically deleted.
Network-signature salts 30 days, then automatically deleted. After deletion, older check-in network signatures cannot be reversed even by us.
Audit log State-change records outlive the content they describe: when your account is erased, the audit trail keeps only a minimal tombstone that the action occurred (actor, action, timestamp), never the content itself.
Push tokens Until you remove the device or sign out.
Support emails 2 years from last interaction, unless we need them longer for legal reasons.

Backups are retained for 7 days (Cloud SQL point-in-time-recovery window) and are subject to automatic eviction; deleting your account starts the eviction clock for any copies of your data in backups.

7. Your rights

You have rights over the data we hold about you. Some rights are available everywhere; some are specific to your jurisdiction.

7.1 Rights available to everyone using compledo

You can, at any time and without contacting us:

  • Sign out from any device (Settings → Sign out).
  • Reset the random per-device identifier described in §3 (Settings → Privacy → Reset this device’s identifier), or by clearing your browser site data.
  • Edit your profile (name, color, locale, timezone).
  • Manage your notification preferences including pausing notifications per group or disabling them entirely.
  • Delete your account. From the account portal on our website (in the app: Settings → Manage account on the web). Your account, all profiles under it, all your items / routines / templates / lists / ticks, all check-ins, and your push tokens disappear from the Service immediately and are permanently erased from our systems after a 30-day grace window (kept only so we can recover from an accidental deletion — contact us within those 30 days if you deleted by mistake). Items you created inside shared groups are also removed for everyone else in those groups.

7.2 If you are in the EEA, UK, or Switzerland (GDPR / UK GDPR)

You have the right to:

  • Access the personal data we hold about you (Art. 15 GDPR).
  • Rectify inaccurate or incomplete data (Art. 16).
  • Erase your data (Art. 17). Use the in-app account-delete flow, which executes this immediately, or email us.
  • Restrict processing in some circumstances (Art. 18).
  • Object to processing based on legitimate interest (Art. 21), including the check-in system and audit logging.
  • Data portability for data you have provided to us, in a machine-readable format (Art. 20). Email us; we will export your data as JSON.
  • Withdraw consent at any time for processing based on consent, without affecting prior lawful processing (Art. 7).
  • Lodge a complaint with your supervisory authority. A list is available at https://edpb.europa.eu/about-edpb/about-edpb/members_en.

We will respond within 30 days. There is no fee.

7.3 If you are in Australia (Privacy Act 1988 / APPs)

You have the right to:

  • Access the personal information we hold about you (APP 12).
  • Correct that personal information (APP 13).
  • Complain about our handling of your personal information. Please email us first; we will respond within 30 days. If you are not satisfied with our response, you can complain to the Office of the Australian Information Commissioner (OAIC) at https://www.oaic.gov.au.

We will notify you and the OAIC of any eligible data breach under the Notifiable Data Breaches scheme.

7.4 If you are a California resident (CCPA / CPRA)

You have the right to:

  • Know what personal information we have collected, the categories of sources, the purposes for collecting it, and the categories of recipients.
  • Delete personal information we have collected from you, subject to statutory exceptions.
  • Correct inaccurate personal information.
  • Limit the use of sensitive personal information. We do not use any sensitive personal information for purposes other than providing the Service, so this right is automatically satisfied.
  • Opt out of the sale or sharing of personal information. We do not sell or share personal information for cross-context behavioural advertising. There is nothing to opt out of.
  • Non-discrimination for exercising any of these rights.

To exercise these rights, use the in-app account-delete flow for deletion, or email us. We will verify your identity by reference to the account email and respond within 45 days.

If you are a resident of Virginia, Colorado, Connecticut, Utah, Texas, Florida, Oregon, Montana, Iowa, or Tennessee, you have substantially similar rights under your state’s law. The mechanisms above apply.

8. How we secure your data

  • All traffic to and from compledo uses HTTPS.
  • Passwords are handled by Firebase Auth and are never stored in our database in cleartext.
  • Payment card details never touch our servers; they are handled end-to-end by RevenueCat’s hosted checkout and its payment provider.
  • Production database access is restricted to a small set of named operators and audited.
  • We use append-only audit logging for state-changing actions.
  • We use legitimate-interest assessments before introducing any new processing that is not strictly necessary for the contract.

No system is perfectly secure. If you have reason to believe your account has been compromised, sign out from all devices via the in-app flow and email us.

9. International users

If you use compledo from a country whose data protection regime is not specifically listed above, the protections described in §7 still apply to the extent we are able to deliver them through our systems. Where there is a conflict between this policy and a mandatory rule in your jurisdiction, the mandatory rule prevails for you.

10. Children

compledo is designed to be safe for children to use as a member of a group an adult has invited them to.

  • We do not allow accounts to be created by anyone under the age of 13. If you are between 13 and 16 and resident in the EEA or UK, you may only create an account with verifiable parental consent; you may use compledo without an account in anonymous mode.
  • A signed-in user with a MEMBER_KID profile role is treated as a child for all data-handling purposes. We do not record check-ins for kid profiles. Streak gamification and device-recognition features are not applied to them.
  • If you believe a child under 13 has created an account on compledo, email us and we will delete it.

11. Changes to this policy

We will post any change to this policy here and update the “Last updated” date. For material changes (particularly any expansion of what we collect or how we use it) we will give you advance in-app notice and, where required by law, your renewed consent.

12. Contacting us

We have not appointed a representative under Art. 27 GDPR; if we do, their details will appear here.