DeSpark — Privacy Policy
Effective date: September 5, 2026
This policy explains what data DeSpark collects, why, and the choices you have. It is written in plain English on purpose — you should be able to read it in a few minutes.
The separate Terms of Use covers the rules for using the app and buying Pro.
The short version
DeSpark removes unwanted objects and distractions from your photos and videos, and the editing happens entirely on your device. The app never uploads your photos or videos. The one way a picture can leave your device is if you attach it to a bug report and send it yourself — you see the draft, and nothing goes until you press Send (§6).
To improve the app, DeSpark sends a small amount of anonymous diagnostic data to Google Firebase — which features you use and crash reports, never your pictures.
Depending on your platform and which version of the app you have, DeSpark may show ads from Google AdMob; where it does, ads may use a device advertising identifier, and only with your permission. Some versions show no ads at all. An optional Pro purchase removes ads and lifts the free limits everywhere. Your photos and videos are never part of any of this.
1. Who we are
DeSpark is an app that removes unwanted objects and distractions from photos and videos. It is developed and operated by Abdullah Al Hadi ("we", "us"). For the purposes of the EU / UK / EEA General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA/CPRA), Abdullah Al Hadi is the data controller for personal data collected through the app. For any privacy question, contact us at mukashi.dev@gmail.com.
This policy covers the DeSpark app on iOS, iPadOS, Android, and macOS, including the Share Extensions ("Share → DeSpark").
A note on versions. DeSpark is not identical on every platform, and not everyone updates at the same time. Where a feature exists in some versions or on some platforms but not others — ads (§4), the services behind purchases (§5), and the options offered in Settings — the sections below say may rather than does. This policy describes the widest set of data DeSpark can collect. Your build may collect less; it never collects more.
2. Data that stays on your device — never sent anywhere
The following lives only on your device, in the app's private storage. We have no server that stores it and no way to read it.
- The photos and videos you clean — the picture or clip you pick, paste, or share into the app, and the cleaned result. These are processed on-device and are never uploaded.
- Temporary working files — cleaning a video writes intermediate frames and the exported clip into the app's private temporary folder while the job runs. The app deletes this working folder when the job finishes or you leave the screen, and the operating system clears the folder on its own as well.
- Your saved results — the before/after pairs the app keeps so you can reopen them later, stored in the app's private container.
- A folder you choose for saved files — some versions let you pick a folder in Files as the destination for cleaned photos. The app remembers only a bookmark to that one folder, and can read and write nothing else on your storage.
- Anything you share into the app — items sent through the Share Extension are copied into a private inbox that only DeSpark and its own extension can see, and are cleared once the app picks them up.
- App state — small flags such as whether you've seen the onboarding, your local preferences (language, appearance, whether cleaned videos are kept), and counters used to pace the free allowance and upgrade prompts — for example how many cleanups you've saved today, and, where ads are shown, when an ad was last shown. These counters never leave your device.
You can delete your saved results at any time — Settings → Clear library (called Clear gallery in some versions), or delete an individual result. Uninstalling the app removes all of it.
If you have iCloud Backup (iOS) or device backup (Android/macOS) enabled, your operating system may include the app's local data in a backup you control in system settings. Those backups are between you and Apple/Google; we have no access to them.
3. Data sent to Firebase (Google)
We use Firebase services from Google: Analytics, Crashlytics, Remote Config, and Cloud Messaging. All of them are configured with the minimum data surface needed for product decisions, crash fixing, app configuration, and notifications — Firebase itself uses no advertising identifiers and does no cross-app tracking. (The separate, permission-gated advertising identifier that may be used to show ads is described in §4.)
Firebase Analytics collects
- App-scoped identifiers only (Apple's IDFV / a Firebase installation ID). These cannot identify you across other apps.
- Device type, OS version, app version, language, and country (derived from IP).
- Which screens you view in the app.
- Aggregate feature usage, so we can decide what to keep, fix, or improve. Depending on the version, that includes:
- Onboarding — that it was finished; that it was skipped, with a one-word reason; and, where the app could not reach its settings in time to decide whether to show it, that it fell back to the built-in default.
- How a photo or video entered the app — a one-word source label such as photos, paste, share, or files — never the picture itself, and never its file name.
- That a cleanup ran — how many watermark areas were found, how long the work took in milliseconds, and, in some versions, a coarse outcome label (detected, low confidence, not detected, manual) or a generic failure reason (too large, decode failed).
- Which editing tool was applied — the name of the tool only (for example crop, tone), never what you did with it.
- Batch cleanup — that a batch started, and how many items it held. Counts only.
- Video cleanup — that a clip started and finished, with frame count and duration in seconds. No frame, thumbnail, file name, or path is ever included.
- That a result was saved, and in some versions which screen it came from.
- That we asked you to rate the app — that the request was made, and the milestone number that prompted it.
- Monetization — that the paywall was shown and that a purchase completed or was restored, each with a short label for the plan and the placement; that a free save was used and how many remain; that the free allowance ran out; that a plan was switched; and that an upgrade offer was shown or dismissed. Where ads are shown, also that an ad was shown, with a placement label. Where a rewarded ad is offered, that it was offered, started, and finished — or failed, with a short reason such as not earned — and how many extra saves it credited. No payment details ever reach Firebase (see §5).
- One user property recording which plan you are on — free, weekly, monthly, or lifetime — so we don't advertise Pro to people who already bought it.
Each event carries at most a few numbers or short categorical labels (like source: paste). No free-form text, no file names, and no image or video content is ever included.
Firebase Analytics is configured not to collect your advertising identifier (IDFA/AAID); it cannot link you across other apps or websites.
Firebase Crashlytics collects data only when the app crashes
- Stack traces from the crash.
- A snapshot of device state at the time of the crash (OS version, device model, memory/disk, locale).
- A non-fatal error we report if the photo or video processing step fails unexpectedly — we send only the error's type, never the picture or any text derived from it.
Crashlytics is disabled in our development builds; it is active in the release build you install from a store.
Firebase Remote Config
Remote Config lets us adjust parts of the app's behaviour without shipping an app update — whether the onboarding tour runs at all, the paywall's wording and which plans it offers, the size of the free allowance and how often it resets, whether an upgrade offer is active, and, where ads are shown, which ad formats are active and how often they appear.
To fetch those settings the SDK sends Google an app-scoped Firebase installation ID plus basic app and device information (app version, platform, language). It sends nothing about you, your photos, or your videos. It is a one-way fetch: settings come down to your device; your data does not go up.
What this means for you: the ads described in §4 and the free limits and upgrade prompts described in §5 are governed by these settings, so what you see can change without an app update. This does not change what data is collected — that is what this policy describes, and we will update this policy before enabling any new category of collection.
What we never send to Firebase: the photo or video you are cleaning, the cleaned result, any image or video bytes, pixels, frames, file names, file paths, or metadata (EXIF). All editing happens on your device; the picture itself does not leave it.
Firebase Cloud Messaging (notifications)
On iPhone, iPad, and Android, DeSpark can send you notifications about new watermark support, app updates, and occasional offers on Pro. Notifications are off until you allow them, and the app asks once.
If you allow them, Firebase Cloud Messaging registers a device registration token so Apple or Google can deliver messages to your device. That token identifies the app installation, not you — it is not your name, email, or store account, and it changes if you reinstall the app. To decide which messages to send, we use the anonymous usage data already described above, plus a single flag recording whether you own Pro.
What is never in a notification, and never sent to enable one: your photos or videos, cleaned results, image or video bytes, pixels, frames, file names, file paths, or EXIF metadata. Notifications carry only a short message and a marker for which screen to open.
Your choices: you can turn notifications off at any time in your device's system settings — on iPhone and iPad, Settings → Notifications → DeSpark; on Android, Settings → Apps → DeSpark → Notifications. Some versions additionally group notifications into Product news, Offers, and Reminders inside the app's own Settings, each of which can be turned off separately. Turning notifications off does not affect anything else in the app. The macOS build does not use notifications and registers no token.
Legal basis (EEA / UK / Switzerland). Where the GDPR or UK GDPR applies, we process the anonymous analytics, crash-diagnostic, and configuration data above under our legitimate interests (Art. 6(1)(f)) — understanding how the app is used, keeping it stable, and configuring it safely — balanced against your privacy. You can object at any time (see §12). Notifications are different: we send them on the basis of your consent (Art. 6(1)(a)), the permission you grant when the app asks, and you can withdraw it at any time in Settings or system settings.
4. Ads (Google AdMob)
Whether you see ads in DeSpark depends on your platform and on which version of the app you have. Some versions show no ads at all and contain no advertising SDK. Where ads are shown, they are supplied by Google AdMob, they appear only in the free version, and buying Pro (see §5) removes them.
Where ads are shown, you may see these formats:
- a banner on the home screen;
- an occasional full-screen (interstitial) ad between actions;
- an app-open ad when you launch the app or return to it;
- a rewarded ad you can choose to watch to earn extra saves or, depending on the version, to unlock a feature for a limited time. Watching is always optional — you can decline, and either skip that feature or buy Pro instead.
Which formats are active, and how often they appear, is governed by the remote settings described in §3.
To request and measure ads, Google's Mobile Ads SDK collects and shares with Google:
- a device advertising identifier (Apple's IDFA on iOS, the Advertising ID on Android) — used only if you grant permission (see consent below);
- your IP address and the coarse location/region derived from it;
- device and app information (model, OS version, app version, language); and
- ad interactions — which ads were shown, and whether you tapped one.
Google uses this to serve ads, cap how often you see the same ad, detect invalid activity, and measure performance — and, where you have granted permission, to show personalized (more relevant) ads. Google acts as an independent controller for the ad data it receives; see the Google Privacy Policy and how Google uses information from apps that use its services.
Your consent and choices. Where a version shows ads, before any ad loads:
- Apple platforms — App Tracking Transparency. The system asks permission to use your device's advertising identifier (IDFA). If you choose "Ask App Not to Track," your IDFA is not used and ads are non-personalized. You can change this any time in Settings → Privacy & Security → Tracking. Versions that show no ads never present this prompt, because they have nothing to track.
- EEA, UK, and Switzerland. Google's User Messaging Platform (UMP) shows a consent form; your choice there determines whether ads are personalized or non-personalized.
- If permission or consent isn't granted, the app shows non-personalized ads — or, if the ad system can't initialize, simply runs without ads.
SKAdNetwork (Apple platforms). Where a version shows ads, it includes Apple's SKAdNetwork identifiers so advertising can be attributed and measured in a privacy-preserving way that does not identify you.
Your photos and videos are never used for advertising and are never shared with the ad network.
5. Purchases & subscriptions
DeSpark is free to use, with a limited number of free saves in each period. You can optionally upgrade to Pro, which lifts those limits, removes ads where they are shown, and unlocks the app's power features such as video and batch cleanup. Purchasing is entirely optional. The exact plans on offer — a weekly or monthly subscription, or a one-time lifetime purchase — vary by version and region. The commercial terms (renewal, cancellation, refunds) are in our Terms of Use.
- Payment is handled by Apple (App Store) or Google (Google Play). We never see or store your card number, billing address, or other payment details — the store processes the payment under its own privacy policy.
- Checking and restoring what you own. Some versions check your entitlement directly with the App Store using Apple's own StoreKit framework, on your device — in that case no third-party purchase service is involved and nothing about your purchase is sent anywhere but Apple. Other versions use RevenueCat for the same job; RevenueCat then receives a randomly generated, app-specific user ID (not your name or email), your purchase and transaction history and store receipt, and basic device, platform, and country information, so the app can tell whether Pro is active and restore it on a new device. RevenueCat is our service provider and uses this data only to deliver and support your purchase; see the RevenueCat Privacy Policy.
- There is no account. DeSpark never asks you to sign up, and we never collect your name or email address to sell you anything.
- The count of free saves you have left is kept on your device only, and is never sent to us or to anyone else.
- This purchase data is not linked to the photos or videos you edit, or to your photo library.
6. The support and bug-report email path
The app offers a way to email us — Settings → Contact us, and, when a photo doesn't clean correctly, an action that reports it ("Report this image" in some versions, "Send the photo" in others). These open a pre-addressed email in your own mail app, with the message already written for you.
Where the app offers the report, the draft opens with the picture already attached — depending on the version, the original you picked and the cleaned copy, as JPEGs with the location and camera data stripped out (§8). Alongside them the message describes the attempt: your app version, platform, OS version, device model, and language; the picture's pixel size and colour profile; whether it came from Photos or Files; and what the automatic cleanup found — the areas it marked, where they sat, and how confident it was. It never includes your file name or file path.
You see all of it before anything happens. The draft opens in your own mail app, where you can read every line, remove either attachment, or discard the whole message. Nothing is sent until you press Send, and it then travels through your own email provider. This is the only way a picture would ever leave your device, and only because you chose to send it to help us reproduce a bug.
7. Permissions the app asks for
- Photo library (read) — to pick the photo or video you want to clean. Some versions use the operating system's own picker, which runs outside the app and hands DeSpark only the items you actually tap — those versions never receive access to your photo library at all, and ask for no read permission. Where the app draws its own picker grid (notably on macOS), it reads the list of items in your library and their thumbnails in order to draw that grid, and loads the full file only for the item(s) you select. We never copy, index, or upload your library, and nothing about it is sent off your device.
- Photo library (add) — to save the cleaned photo or video back to your library. We save only when you tap Save.
- Files — if you import through Files rather than the photo library, the system file picker hands the app only the file you picked. Where the app lets you choose a destination folder for saved photos, it keeps a bookmark to that one folder and can write nowhere else. The app gets no access to the rest of your storage.
- Clipboard — read only when you tap "Paste image", to bring in an image you copied.
- Share sheet — the Share Extension receives only the items you send it (up to 15 images, or one video), and copies them into a private inbox shared between the app and its own extension.
- App Tracking Transparency (Apple platforms) — where a version shows ads, a one-time prompt asking whether DeSpark may use your device's advertising identifier (see §4). Saying no still lets the app work, with non-personalized ads. Versions without ads never show this prompt.
- Notifications (iPhone, iPad, and Android) — a one-time prompt asking whether DeSpark may send you notifications about new watermark support, updates, and Pro offers (see §3). Saying no changes nothing else about the app. Not used on macOS.
- Network — used by the Firebase SDKs (§3) to send diagnostic data and fetch configuration, by the purchase system (§5) to validate and restore Pro, where ads are shown by Google AdMob (§4) to request and measure them, and by the in-app browser that shows this policy and the Terms of Use. On macOS the app is sandboxed, and its entitlements allow outbound network, photo- and video-library access, reading a file you pick yourself in the system open dialog, writing cleaned images into your Downloads folder, and a shared app group that lets the Share Extension hand an image to the app. It has no other access to your disk.
- DeSpark does not use the camera, microphone, precise location, contacts, or calendar.
8. How on-device editing works
All detection and editing — for both photos and video — run on-device, in the app. DeSpark removes only the visible content you select or that automatic cleanup targets. Nothing is uploaded for processing.
On Apple platforms the cleanup engine is a native library compiled into the app itself; on macOS, part of the cleanup may run through a JavaScript engine bundled inside the app. Both execute locally on your device and make no network requests; no frame or pixel leaves the app.
Location and camera data in the files you save
The original photo you pick may carry EXIF metadata — the camera model, the time it was taken, and often the GPS coordinates of where it was taken. Where the app offers the option (Format & size → "Strip location & camera data" on iPhone and iPad), that metadata is removed from the exported file by default, and batch exports always remove it.
We never read that metadata ourselves and never send it anywhere. The switch controls only what ends up inside the copy you save to your library or hand to someone else.
9. What we never do
- We never upload, store, or transmit the photos and videos you edit — your content stays on your device and leaves it only via a support email you choose to send (§6).
- We never use your photos or videos to target or personalize ads, and we never share them with any ad network or other third party.
- We never sell your personal information for money.
- We never ask you to create an account, and we never ask for your name. We don't link your analytics, ad, or purchase data to your real-world identity.
10. Third parties
- Firebase (Google LLC) — Analytics, Crashlytics, Remote Config, and Cloud Messaging, processed as our service provider under the Firebase Data Processing and Security Terms. Google's own practices are covered by the Google Privacy Policy. Google primarily processes this data on servers in the United States; for EEA/UK/Swiss users, transfers rely on Google's Standard Contractual Clauses and the UK International Data Transfer Addendum.
- Google AdMob (Google LLC) — serves the ads in versions that show them (§4), covered by the Google Privacy Policy. Google may use the ad data it receives as an independent controller.
- RevenueCat, Inc. — manages subscription and purchase entitlements in the versions that use it (§5), as our service provider; see the RevenueCat Privacy Policy. Versions that check entitlements directly with Apple do not send anything to RevenueCat.
- Apple App Store / Google Play — install, review, and rate prompts, and processing your purchases. Governed by Apple's and Google's own privacy policies.
- Gmail (Google LLC) — receives a support email only if you choose to send one.
- GitHub Pages — hosts this policy page; GitHub may log standard request data (such as your IP address) when you open it.
11. How long we keep it
- On-device data — until you delete it or uninstall the app.
- Temporary video working files — deleted when the cleanup job finishes or you leave the screen; the operating system also clears the app's temporary folder.
- Firebase Analytics — Google retains event-level data per its default window (up to 14 months), after which older events are aggregated or dropped.
- Firebase Crashlytics — Google retains crash reports for 90 days.
- Firebase Remote Config and Cloud Messaging — we store no per-user data in Remote Config; a notification token is retained only while the app is installed and stops working once you uninstall.
- Advertising data — where ads are shown, retained by Google according to the Google Privacy Policy; we keep no ad data ourselves.
- Purchase data — the app stores, and RevenueCat where it is used, keep purchase records for as long as needed to provide, restore, and support your purchase and to meet legal, tax, and accounting obligations. We hold no purchase records of our own.
- Support emails — kept in our inbox no longer than needed to handle your request and any follow-up.
12. Your rights and choices
- Delete your saved results any time — Settings → Clear library (Clear gallery in some versions), or delete an individual result.
- Keep location out of the files you share — leave "Strip location & camera data" on when you export (§8).
- Control ad personalization, where ads are shown — on Apple platforms, change your choice in Settings → Privacy & Security → Tracking; on Android, reset or delete your Advertising ID in system settings. Opting out switches you to non-personalized ads.
- Remove ads entirely — upgrade to Pro, which turns off all ads in versions that show them.
- Turn off notifications — in the app's Settings where it offers the option, or in your device's system settings at any time.
- Stop all telemetry — uninstalling the app stops any further analytics and crash reporting from your device and invalidates the Firebase installation ID.
- Access or erase your data under GDPR (EEA, UK), CCPA/CPRA (California), Brazil's LGPD, or similar laws — email mukashi.dev@gmail.com. Because we don't tie analytics, ad, or purchase data to a persistent identity, the most reliable erasure is uninstalling the app and resetting your device advertising identifier.
- Lodge a complaint — if you're in the EEA, UK, or Switzerland, you may complain to your local data protection authority. We'd appreciate the chance to address your concern first — email mukashi.dev@gmail.com and we'll respond within 30 days.
We don't sell your personal information for money. Where a version shows ads and you allow tracking, your device's advertising identifier may be used to personalize ads — which California law (CCPA/CPRA) treats as "sharing" for cross-context behavioral advertising. You can opt out at any time by denying tracking, resetting your Advertising ID, declining the consent form where it's shown, or upgrading to Pro. Versions that show no ads share nothing for cross-context behavioral advertising.
13. Children's privacy
DeSpark is a general-audience app and is not directed at children under 13 (or the equivalent age in your region). We don't knowingly collect personal data from children. If you believe a child has used the app and want associated diagnostic data removed, email mukashi.dev@gmail.com.
14. Security
- On-device data is stored in the app's private sandbox. Data sent to Firebase, the purchase system, and — where ads are shown — the ad network travels over HTTPS (TLS).
- We operate no server that holds your content, so there is no central store of your photos or videos to breach.
- No method of transmission or storage is 100% secure. If we become aware of a breach affecting your data, we will notify you as required by applicable law.
15. Changes to this policy
If we change this policy, the new version replaces this page at https://hadicuet.github.io/despark-legal/ and the "Effective date" above is updated. Material changes (such as a new third-party service or a new category of data) will be called out in the app's release notes.
16. Contact us
Questions, requests, or complaints: mukashi.dev@gmail.com.