Privacy Policy

Last updated: August 16, 2026

The short version: your images never leave your device. All compression and conversion happens inside your browser, on your own hardware. We have no upload endpoint, no server-side processing, and no server-side storage for image files. The only data that ever reaches our infrastructure is anonymous, page-level analytics (see Analytics).

How the app works

kompres.web.id is a static web application. When you add images to the app, the following happens — entirely on your device:

  1. Opening files. The files you select or drop are read by JavaScript directly from your local disk, using the browser's standard File API. They are loaded into your tab's memory as Blob objects.
  2. Decoding. Images are decoded in your browser: common raster formats (PNG, JPG, WebP, BMP, GIF, AVIF) through the browser's built-in Canvas API, TIFF through the open-source utif library, HEIC through heic2any, and SVG/ICO via in-browser rasterization. All of these run as JavaScript inside your tab.
  3. Compressing & converting. Output files are produced by encoding the decoded pixels back to your chosen format — again via the Canvas API and bundled JavaScript encoders (including hand-written BMP and ICO encoders). No request is made anywhere during this step.
  4. Storing. Your files are kept in IndexedDB, a storage area inside your own browser (database name image-compressor-db), so your library survives a page reload. This is device-local storage, not a server.
  5. Downloading. Downloaded files and ZIP archives are assembled in memory by your browser and saved straight to your device.

No uploads, no server-side processing

There is no code path that transmits image data over the network. The application contains no upload form, no file endpoint, and no network calls that carry file bytes — you can verify this yourself: open your browser's developer tools, watch the Network tab, and process an image. You will see no request containing your file.

Compression quality and speed are bounded by your own device — which is exactly the point: the work happens on your hardware, not ours.

No server-side storage of your files

Because files are never uploaded, they cannot be stored on our servers. The only place your images exist is:

  • your device's file system (the originals you picked), and
  • your browser's local IndexedDB storage for the copies you added to the app.

To remove them, use the delete button on any file card, or “Clear cache” in the header to wipe everything at once. Clearing the site's data in your browser settings (often labelled “cookies and site data”) removes the entire database just as completely.

Analytics

This site uses a self-hosted Matomo instance to understand aggregate usage — for example, that a page was visited and from which country the page was requested. Matomo receives standard technical request data (such as your IP-derived, anonymized location and browser user agent) and may set a first-party cookie for visit deduplication.

Analytics never has access to your images, file names, or any content you process, because none of it is ever transmitted. If you prefer not to be counted, a browser extension or setting that blocks tracking scripts will prevent it entirely — the compressor keeps working either way.

What we never collect

  • Your image files, in whole or in part
  • File names or metadata of the images you process
  • Accounts — the app has no sign-up and no user accounts
  • Personal information of any kind — the app has no forms that collect it

Third parties

No third party processes, receives, or stores your images — there is nothing to send them. The fonts and code that make up the app are served from this site itself, not from a third-party CDN. The only external service involved in running the site is the Matomo analytics described above.

Changes to this policy

If the app's behavior ever changes in a way that affects privacy, this page will be updated and the “last updated” date above revised. The core promise is not expected to change: image processing on this site stays client-side.