How browser-local file conversion works

Most online converters upload your file to a server. Ours cannot: every tool on this site runs the conversion inside your browser, using JavaScript and WebAssembly. This page explains exactly what that means, how to check it yourself, and - just as importantly - what it makes impossible.

Why "no upload" is a real architectural difference

A server-based converter is a thin client: your browser sends the file, the server does the work, and the result comes back. That design has advantages - the server can run any library, however large - and one structural cost: the file has to exist on infrastructure you do not control, at least for a while. Retention policies, logs and backups are all outside your sight.

This site is built the other way round. There is no upload endpoint. The page loads a JavaScript library that decodes the file in memory, transforms it, and hands the result back as a local download. If the network were switched off after the page loaded, the tool would still work.

The pipeline, step by step

  1. Read. The file is read with the browser's FileReader / File.arrayBuffer() APIs. It becomes bytes in the page's memory - never a request.
  2. Decode. Those bytes are decoded either by the browser's own image codecs (through <img> or createImageBitmap) or by a WebAssembly library shipped for formats the browser does not support natively, such as libheif for HEIC or pdf.js for PDF pages.
  3. Transform. The decoded data is drawn into a <canvas> or manipulated in memory: resized, cropped, rotated, recoloured, re-encoded.
  4. Encode. The canvas is written back to a binary format with canvas.toBlob(), or a document is rebuilt with a pure-JavaScript library such as pdf-lib.
  5. Deliver. The result becomes a Blob and an object URL, which the page triggers as a download. Nothing is transmitted.

How to verify it yourself

Do not take this page's word for it. Open your browser's developer tools, switch to the Network panel, and convert a file. Then look at what happened:

If you want to go further, watch the Memory or Performance tab while converting a large PDF and you will see the allocation happen in the page's own process.

Advertisement

What a browser does well

What a browser cannot do

Being honest about this matters more than listing capabilities, because these limits are the reason some conversions behave differently here than on a server-based tool.

Why publish the limits

A tool that claims no limits is usually hiding something. Publishing them lets you decide whether a given conversion is worth doing here at all, and it means the numbers on the tool pages - the resolution, the quality, the file size - can be checked against what the implementation actually does.

If you are writing about browser-based tools and want a citation, this page is intended for exactly that. No permission needed.

← ← Back to the tools