Goodbyte

Privacy Policy

Goodbyte for Android (com.xesturgy.sift) · Published by Xesturgy Media · Last updated October 13, 2026

The short version. Goodbyte reads the photos, videos, and files on your device to find duplicates and clutter. None of that content is uploaded anywhere. Goodbyte contains no third party analytics SDK, no crash reporting SDK, no advertising SDK, and no user accounts.

Goodbyte makes two kinds of network request of its own, plus the requests Google Play itself makes for billing and reviews. Both are described in section 3.

1. What Goodbyte reads on your device

Photos and videos

Goodbyte requests READ_MEDIA_IMAGES and READ_MEDIA_VIDEO, and READ_EXTERNAL_STORAGE on Android 12 and below. It uses these to query Android's MediaStore for your images and videos, compute similarity fingerprints, and show you thumbnails.

This processing is local. Image fingerprints, file sizes, file names, and paths are written to a database inside Goodbyte's own private app storage. They are never transmitted.

The on device photo quality scoring uses two TensorFlow Lite models bundled inside the app package. Inference runs locally on your device. No image and no score leaves the device.

WhatsApp media

Goodbyte does not get access to WhatsApp media automatically. You choose the folder yourself through Android's own folder picker, and Goodbyte stores only the resulting access grant. Goodbyte can read only the folder you picked. You can revoke this at any time in Android Settings.

File names, sizes, and categories from that folder are indexed into Goodbyte's local database. They are never transmitted.

Device storage totals

Goodbyte reads your device's free and used storage figures to draw the storage overview and to decide whether to show a storage alert notification. These figures stay on device.

2. What Goodbyte stores on your device

All of the following lives in Goodbyte's private app storage and is removed when you uninstall the app.

WhatWhereWhy
Media index: IDs, sizes, paths, hashes, duplicate groupsRoom databaseSo Goodbyte does not rescan from zero every time
Review Bin queueRoom databaseSo queued items survive an app restart before you confirm deletion
Paywall impression and conversion eventsRoom databaseLocal only measurement of which paywall you saw
Clean streak, lifetime bytes freed, freeze usageRoom databaseThe streak and stats features
A locally generated random UUIDDataStorePicks which paywall layout you see. This UUID is never transmitted.
Cached paywall configDataStoreSo the paywall works offline
Install identifierDataStoreSee section 3.2
Ad click identifier, if you arrived from an adDataStoreSee section 3.2
Campaign name, if you arrived from an adDataStoreSee section 3.2
Usage events waiting to be sentRoom databaseSo an event is not lost if you are offline or the app closes before it is sent
WhatsApp folder access grantDataStoreSo you only have to pick the folder once
Subscription status, plan, expiryEncrypted shared preferencesSo Pro features work without a network round trip

Android cloud backup is disabled for Goodbyte, so none of this is copied to Google Drive.

3. What Goodbyte sends off your device

Goodbyte makes two kinds of outbound request of its own. Both go to goodbyte.app over HTTPS. Neither carries your photos, your files, your name, your email address, your device ID, or your advertising ID.

3.1 Paywall configuration fetch

On launch, Goodbyte performs a GET to https://goodbyte.app/config.json to read current pricing and trial length.

This is a download. Goodbyte sends no body and no identifying parameters with it. Our web server is configured not to record access logs, so the IP address and user agent your network provides with that request are not written to disk or retained by us.

3.2 Usage and subscription events

Goodbyte reports a small number of usage and subscription events, linked to a random install identifier, so we can tell which ads are worth buying and where people get stuck. These go to https://goodbyte.app/postback over HTTPS.

The events. First launch, finishing onboarding, finishing your first scan, opening the subscription screen, starting a free trial, and completing a purchase.

What each event carries.

  • A random event identifier, so that a retry on a bad connection cannot be counted twice.
  • An install identifier: a random value Goodbyte generates on first launch and keeps for as long as the app stays installed. It is not your device ID, not your advertising ID, and not derived from any hardware value. It is not shared with other apps and it does not survive uninstalling Goodbyte. It does, while the app stays installed, tie your events together, and where you arrived from one of our ads it ties them to that click as well. Reinstalling produces a brand new one with no link to the old.
  • A campaign click identifier, only if you installed Goodbyte after clicking one of our ads. It refers to the ad click, not to you. Goodbyte keeps it for as long as the app stays installed, so that a subscription weeks later can still be credited to the ad that brought you here.
  • On trial and purchase events, the Google Play purchase token for that subscription, and the product identifier of the plan. The purchase token is issued by Google, identifies the subscription rather than you, and is what lets us match a later renewal to the same original install.
  • The time the event happened.
  • On the first launch event only, and only if you arrived from one of our ads, the campaign name from the Play install referrer.

What these events never carry. No price, amount, or currency. Nothing about your photos, videos, files, folder names, or storage contents. No name, email address, account, phone number, contacts, or location. No device identifier and no advertising identifier.

Your IP address. Any web request necessarily reveals an IP address to the receiving server. We do not keep it. The server that receives these events writes no access log for them, and the abuse rate limiter identifies callers by a salted one way hash held in memory only, never an address on disk.

If you did not install Goodbyte from one of our ads, these events are still sent, with no campaign click identifier attached, because we still want to know where people get stuck in the app.

If you are offline, an event waits in a queue on your device and is sent once you have a connection. Nothing is sent while the app has no network.

3.3 Requests made by Google, not by Goodbyte

Goodbyte uses three Google libraries that communicate with Google's own services:

  • Google Play Billing handles subscription purchases and entitlement checks. Your payment details go to Google. Neither Goodbyte nor our servers ever see a card number.
  • Google Play Install Referrer supplies the campaign identifier described above.
  • Google Play In App Review shows the native rating card.

Subscription notifications from Google to us. When you start a trial, convert to paid, renew, cancel, or receive a refund, Google Play notifies our server directly. That notification carries the purchase token and the plan identifier, not your identity or your payment details. We use it to record that the subscription event happened and what it was worth, and to credit it to the ad campaign that led to the install. Your card details never reach us, and we cannot see them.

The Google libraries above are governed by Google's privacy policy, not ours.

4. What Goodbyte does not do

  • Goodbyte does not upload your photos, videos, or files.
  • Goodbyte does not include Firebase Analytics, Crashlytics, Adjust, AppsFlyer, Amplitude, Mixpanel, Adapty, Superwall, RevenueCat, the Meta SDK, or any advertising network SDK.
  • Goodbyte does not create an account or ask for your email address.
  • Goodbyte does not read your contacts, location, camera, microphone, call logs, SMS, or the list of apps installed on your device. None of those permissions are declared.
  • Goodbyte does not sell or share personal information with third parties for advertising purposes.

Goodbyte does report its own usage events, described in section 3.2. What it does not do is embed a third party analytics or advertising SDK that gets its own access to your device.

5. Deleting your data

Your media index, your scan results and your Review Bin stay on your device, and you control them directly. The event records described in section 3.2 are the exception: those are held on our server for up to 90 days.

  • Reset scan data in Settings wipes Goodbyte's local media index.
  • Uninstalling Goodbyte removes everything described in section 2.
  • To revoke WhatsApp folder access, remove it in Android Settings, or use Settings inside Goodbyte.
  • To revoke media access, use Android Settings for Goodbyte's permissions.

Because Goodbyte has no accounts, there is no profile of you on our servers, and nothing there carries your name, email address, or device identity. What does exist is the event record described in section 3.2, keyed to a random install identifier.

We delete those records automatically after 90 days. No action is needed from you.

Because the install identifier is random and is not shown anywhere in the app, neither you nor we can look up your records from your name or email address. If you want them removed sooner and you have subscribed, contact us at the address in section 10 with the Google Play order number from your purchase receipt. That lets us find and delete the records for that subscription. If you have never subscribed, uninstalling Goodbyte ends all reporting immediately and the remaining records expire on the 90 day schedule.

6. Children

Goodbyte is not directed to children under 13 and does not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact us at support@goodbyte.app and we will address it.

7. Notifications

Goodbyte can send notifications when it finds a meaningful amount of new clutter, when your device is very low on free space, and about video compression progress. These are generated on your device from local scan results. No notification content is sent to or from a server. You can turn them off in Android Settings.

8. Permissions Goodbyte declares, and why

PermissionPurpose
READ_MEDIA_IMAGESFind duplicate and similar photos, screenshots, and large images
READ_MEDIA_VIDEOFind large videos and compress them on device
READ_EXTERNAL_STORAGESame, on Android 12 and below
FOREGROUND_SERVICE, FOREGROUND_SERVICE_MEDIA_PROCESSINGKeep a long scan or video compression running while you use other apps
POST_NOTIFICATIONSShow scan progress and storage alerts
INTERNETThe two kinds of request described in section 3, plus Google Play Billing

9. Changes to this policy

If this policy changes, the updated version will be posted at goodbyte.app/privacy with a new date at the top. Material changes will also be noted in the app's release notes.

10. Contact

Questions about this policy or about your data can go to support@goodbyte.app.

Goodbyte is published by Xesturgy Media, Texas, United States.