Legal & Transparency

Privacy Policy

GoatPDF for Android Effective: January 1, 2025 Written in plain English — no legalese
Last updated: January 1, 2025 — This policy applies to all versions of GoatPDF for Android.
 Zero documents collected
 100% offline processing
 No analytics trackers
 No ads, ever
 Never uploads your files
 2 lightweight network pings only

Quick Summary

I know privacy policies are usually long, boring, and written for lawyers. So here's the honest short version:

The core promise

GoatPDF never sees your documents. Not even once. Every PDF you open, edit, convert, sign, compress, or scan is processed entirely on your own device. No file or fragment of a file is ever transmitted to me or any third party. I literally have no server infrastructure that could receive them.

The rest of this policy explains the full technical and legal details. If you have questions, my Telegram community is always open.

Who I Am

GoatPDF is an independent Android application developed and maintained by me. I am an independent software developer with no corporate parent and no advertising revenue. My community is centered around my Telegram group at t.me/GoatPDF.

This Privacy Policy applies to the GoatPDF Android application in all its versions and distribution channels, including Uptodown and direct APK downloads.

What I Collect

The short answer: almost nothing. Here is an exhaustive list of what GoatPDF collects:

I DO NOT collect

Your PDF files or any portion of their content. Your name, email, or any personal identifiers. Your location, IP address, or device fingerprint. Usage patterns, session data, or behavioral analytics. Contacts, calendar, camera roll (unless you explicitly choose a file). Crash logs or error reports sent to any server.

I DO collect (minimally)

When the app checks for updates, my server logs a standard HTTP access log entry that includes the date, time, and approximate region of the request (from the IP address), but I do not store or analyze these logs beyond standard server maintenance. The app itself sends no identifying data in this request.

Local Processing — How It Works

GoatPDF is built on a "local-first" architecture. Every tool in the app uses on-device libraries, meaning computation happens on your phone's CPU and RAM, using your phone's storage. Here's how the main operations work under the hood:

PDF Operations (Merge, Split, Compress, Rotate, etc.)
These are handled by Apache PDFBox™, an open-source Java library bundled directly inside the app. It reads and writes PDF structures in your device's local file system. No network access is involved or initiated.

OCR (Text Extraction from Scanned Pages)
OCR runs using on-device machine learning models. The models are bundled with the application. No image or text is ever sent to a remote recognition server.

Format Conversions (PDF ↔ Word, Excel, PowerPoint, JPG)
All format conversion logic is handled by libraries running locally on your device. Your document is read from local storage, transformed in memory, and written back to local storage. No conversion servers, no cloud APIs.

Document Scanning (Scan to PDF)
The document scanner uses Google ML Kit's Document Scanner API, which executes entirely on-device. The camera feed and captured images are processed locally and never leave the device.

Digital Signatures
Signatures are generated and embedded into the PDF structure locally using on-device cryptographic operations. No certificate authority or external signing service is contacted.

Technical note for developers

GoatPDF holds only the permissions required for local file access. The INTERNET permission in the Android manifest is scoped narrowly for the update checker and sponsors list requests described below. It is architecturally impossible for PDF content to be routed through these endpoints.

Network Requests — Full Disclosure

GoatPDF makes exactly two types of outbound network requests. Both are optional reads of public JSON files. Neither involves your documents, identity, or behavior.

1. App Update Checker
On launch, the app sends a standard HTTP GET request to fetch a tiny JSON file hosted at a public URL. The JSON file contains only the latest version number and a download URL. Example response:

{"version": "2.1.0", "url": "https://..."}

The app compares this version against the installed version number. If a newer version exists, a non-intrusive notification banner is shown. No data about you, your device, or your files is sent in this request.

2. Featured Sponsors List
A secondary JSON file may be fetched to populate an optional sponsors section within the app. This is a one-way read of a public file. Again, no user data is transmitted.

What these requests are NOT

These requests are not analytics pings. They do not carry device IDs, user IDs, advertising IDs, or any payload beyond a standard HTTP request header. A network inspection tool (like Charles Proxy or Android's own traffic monitor) will confirm this.

Zero Telemetry

I want to be unambiguous about this, because "privacy-first" is a phrase that is frequently misused in the software industry:

  • No analytics SDK. GoatPDF does not include Firebase Analytics, Mixpanel, Amplitude, or any behavioral analytics library.
  • No crash reporting. GoatPDF does not include Firebase Crashlytics, Sentry, Bugsnag, or any crash reporting service that sends data to an external server.
  • No advertising SDK. GoatPDF contains no ad network libraries (Google AdMob, Meta Audience Network, etc.) of any kind.
  • No usage tracking. I do not know which tools you use, how often you open the app, how large your files are, or anything about your workflow.
  • No A/B testing. There is no remote configuration system that modifies app behavior based on user segments.

Verify it yourself

You can inspect GoatPDF's network traffic using Android's built-in developer options (enable "Network inspector" in Android Studio, or use a network debugging proxy). You will observe only the two JSON GET requests described above and zero additional outbound connections during any PDF operation.

Data at a Glance

A complete summary of every data type relevant to GoatPDF:

Data Type Collected? Sent to Server? Notes
Your PDF documents Never Never Processed 100% on-device only.
Your name / email Never Never No account system exists.
Device identifiers (IMEI, Android ID) Never Never Not requested or accessed.
Advertising ID (GAID) Never Never No ad networks present.
Usage & behavioral data Never Never No analytics SDK present.
Crash & error reports Never Never No crashlytics present.
App update version check Version only Minimal (GET only) Fetches remote version number. No user data sent.
Featured sponsors list None Minimal (GET only) Public JSON read. No user data sent.

Third-Party Libraries & Services

GoatPDF uses the following third-party components. All of them run on-device only with no data sent to their respective vendors during normal PDF operations:

  • Apache PDFBox™ — Open-source PDF manipulation library (Apache License 2.0). Runs entirely locally. pdfbox.apache.org
  • Google ML Kit Document Scanner — On-device document scanning and perspective correction. Models run locally on Android. developers.google.com/ml-kit
  • Jetpack Compose — Google's modern Android UI framework. A UI library only — no data collection. developer.android.com/jetpack/compose

I do not use any advertising, analytics, or data-broker SDKs. I do not share data with data brokers or sell any data to any party, because I simply do not have any user data to sell.

Children's Privacy

GoatPDF does not knowingly collect personal information from children under 13 (or under 16 in the EU under GDPR). Since GoatPDF collects no personal information from any user at all, there is no special risk to children's data. The app is suitable for all ages as a productivity tool.

Changes to This Policy

If I ever change this Privacy Policy in a meaningful way — for example, if a future version of the app introduced any new data collection — I will:

  1. Update the "Last updated" date at the top of this page.
  2. Post an announcement in the GoatPDF Telegram channel.
  3. Increment the app version number with release notes describing the change.

My commitment is that any such change would only ever be additive and transparent, never retroactive or hidden.

Contact Me

If you have any questions about this Privacy Policy, want clarification on my data practices, or want to report a privacy concern, the best way to reach me is through my Telegram community:

Questions about privacy?

I'm active in the GoatPDF Telegram group. Reach out any time — I answer privacy questions directly and transparently.

t.me/GoatPDF