Public App PagesCleanMD: PDF to Markdown

CleanMD: PDF to Markdown

Turn PDFs, scans, screenshots, and document images into clean Markdown.

Privacy Policy

CleanMD: PDF to Markdown

Effective date: 2026-09-03

This page explains how the current version of CleanMD: PDF to Markdown handles event data, reminder settings, local permissions, and user controls. It is intended to serve as the public privacy policy URL for App Store submission and for end users who want a plain-language overview.

Plain-Language Summary

  • CleanMD does not require an account, does not provide cloud sync, and does not include ads or cross-app tracking.
  • CleanMD Plus purchases are processed by Apple In-App Purchase, with RevenueCat used to help load the subscription product, manage entitlement status, and restore purchases.
  • Starting with version 1.2.0, optional product analytics is off by default. If you enable it, Mixpanel and RevenueCat receive limited conversion and subscription-flow events. You can turn analytics off later without losing conversion or subscription access.
  • Before your first analytics choice, CleanMD may hold four content-free first-session steps only in temporary process memory: app opened, file selected, convert tapped, and privacy notice viewed. They are not assigned a Mixpanel identity, written to persistent storage, or transmitted. They are sent only if you opt in during that session; otherwise they are discarded.
  • Starting with version 1.2.0, CleanMD sends App Store-signed app proof and, when available, a current subscription transaction to the CleanMD backend to verify subscription access and enforce one lifetime free successful conversion. The backend processes the signed proof transiently and stores only a server-keyed one-way identity hash and quota state; raw Apple identifiers and signed proof are not logged, persisted, or sent to Mixpanel.
  • When you choose to convert a real file, the selected file is uploaded for document parsing only after you continue past the upload notice.
  • Converted Markdown results and recent conversion history are stored locally on your device unless you export, share, clear, or uninstall the app.
  • Do not upload sensitive personal, legal, medical, financial, or confidential documents unless you accept third-party processing.

Data Handled On Device

  • Selected file name, file type, file size, and detected PDF page count when available
  • The selected PDF or image file when you choose to convert it
  • Selected output mode: Obsidian-ready, AI-ready, or Plain Markdown
  • Converted raw Markdown and formatted Markdown result
  • Local conversion result identifiers and timestamps
  • Provider task identifiers or temporary result URLs when returned by the active conversion provider
  • Text copied to the clipboard or exported files only when you choose those actions
  • Support messages and email addresses only if you contact support or submit feedback
  • If you opt in to optional analytics: a random app-scoped identifier, app version and build, platform, coarse file type/size/page-count buckets, selected output mode, conversion outcome and duration, quota state, bounded error code, retry or abandonment state, and paywall or purchase-flow stage. Filenames, file addresses, document or Markdown contents, signed Apple proof, feedback messages, and email addresses are excluded.
  • CleanMD backend operational records may include a random request ID, route and service version, timestamp, response status, duration, rate-limit or quota result, Provider state, and bounded error code. These records support security, reliability, abuse prevention, quota reconciliation, and cost control; they do not include filenames, document or Markdown content, raw Apple proof, feedback text, or a Mixpanel identifier.
  • App Store-signed app transaction proof and, if active, subscription transaction proof used by the CleanMD backend for app functionality, subscription access, quota enforcement, and abuse prevention. The signed values are processed transiently; the durable record is a server-keyed one-way identity hash with one-free-quota and reservation metadata.

Storage and Collection

  • Converted Markdown and recent conversion history are stored locally in app storage on your device
  • The app removes transient source-file URIs from persisted conversion history
  • Exported .md files are created only when you choose to save or share them
  • No account-based cloud document library is provided in the current version
  • For version 1.2.0 and later, the CleanMD backend retains the one-way app-identity hash and lifetime quota state needed to prevent app updates, redownloads, or same-account device changes from resetting the included conversion. It does not retain the raw signed Apple proof.
  • Files uploaded for conversion are processed by the configured parsing provider or CleanMD backend path; provider-side processing and retention are governed by that provider or service policy
  • You can remove locally stored results or history from the Local Storage screen, or remove app data by uninstalling the app
  • Optional analytics events are stored by Mixpanel under the CleanMD project retention setting. Unless a shorter project setting is verified, CleanMD conservatively treats the retention period as up to five years; earlier access or deletion can be requested through the privacy contact below.
  • After analytics opt-in, unsent events are kept locally in a retry outbox limited to 100 events and 72 hours. Successful delivery removes them. Turning analytics off or uninstalling the app clears the local outbox.
  • Backend operational records are retained only as needed for security, troubleshooting, abuse prevention, quota reconciliation, and service reliability, under the hosting project's access and retention controls. They are deleted or de-identified when no longer required, except for the separately described lifetime quota state or records that must be kept for security or legal obligations.

Permissions

  • Files access is used only when you choose a document through the system document picker
  • Photo Library access is used only when you choose an image, screenshot, or scan from Photos
  • Clipboard access is used only when you tap Copy Markdown
  • File saving and sharing use the system file and share interfaces when you choose Save or Share
  • The current version does not request location, contacts, microphone, camera, notification, or health permissions

Framework and Third Parties

  • The app is built with Expo and React Native and uses iOS system capabilities such as document picking, photo picking, clipboard, file storage, and sharing
  • Real document conversion may use a configured document parsing provider, such as MinerU, or a CleanMD backend/proxy endpoint hosted by the developer
  • The public support form is hosted on SuperMaster Lab and is used only if you submit feedback or support details
  • Supabase hosts the CleanMD backend, quota state, and service-operational records used to run and protect the conversion service. These functional records are separate from optional Mixpanel product analytics.
  • Apple In-App Purchase processes CleanMD Plus payments. RevenueCat helps load the subscription product, manage entitlement status, and restore purchases. Only after optional analytics consent may RevenueCat also receive limited product-interaction counters used to diagnose the conversion and subscription flow. The developer does not receive or store full payment card details, and filenames or document contents are not sent to RevenueCat.
  • For version 1.2.0 and later, Apple's StoreKit supplies App Store-signed app and subscription proof. The CleanMD backend verifies those signatures with Apple's official App Store Server Library before granting a free conversion or subscription access. This proof is not analytics data and is not sent to Mixpanel.
  • Starting with version 1.2.0, CleanMD sends Mixpanel the disclosed limited event fields only after you opt in. IP geolocation is disabled in the request, and CleanMD does not use Mixpanel for advertising or cross-app tracking. Network failures use the disclosed bounded local retry outbox and stable event IDs to avoid duplicate counting. The current client endpoint is Mixpanel's US/global ingestion endpoint unless a later verified release configuration says otherwise.

Sensitive Use Boundaries

  • CleanMD is not designed for highly sensitive, confidential, regulated, legal, medical, or financial documents unless you accept the risks of third-party processing
  • CleanMD does not provide legal, medical, financial, tax, academic-integrity, or professional advice
  • OCR and document parsing can be imperfect; you should review converted Markdown before relying on it
  • Only upload documents that you have the right to process and share with a parsing service

User Controls

  • You can stop before conversion and avoid uploading a selected file
  • You can choose whether to copy, save, or share converted Markdown
  • You can clear locally stored converted results and local history from the Local Storage screen
  • You can manage app permissions later in iOS Settings
  • You can restore a previous CleanMD Plus purchase in the app and manage or cancel an active subscription in Apple ID subscription settings
  • You can remove app data by uninstalling the app
  • Uninstalling or redownloading removes local app data but does not reset the server-side lifetime free-conversion record for the same Apple Account and app.
  • In Privacy & Data, you can turn optional analytics on or off. Turning it off stops future Mixpanel events and optional RevenueCat funnel-attribute sync, then clears the active anonymous analytics identifier, temporary first-session buffer, unsent lifecycle event, and local retry outbox from this device. To request access to or deletion of previously sent analytics data, use the privacy contact below.
  • For privacy questions, contact the public support email below or use the feedback form and include a reachable email address

Questions or Updates

If a future version changes data collection, account handling, analytics usage, or cloud features, this page should be updated before the related App Store version is submitted.

Privacy Contact

If you have a privacy question about the current version, contact the public support mailbox below or use the feedback route and include a reachable email address for follow-up.