How WebConverter Works
Every conversion runs inside your browser. No files are ever uploaded. Here is exactly what happens when you convert a file.
The Short Version
When you drop a file onto WebConverter, it is read from your disk into browser memory, processed by compiled C++ code running as WebAssembly, and saved back to your disk as a new file. The entire pipeline runs on your CPU — nothing leaves your device.
You can verify this: open your browser's Developer Tools → Network tab, then convert a file. You will see zero outbound requests carrying file data.
Image Conversion
Image conversion is powered by the Magnum C++ graphics library, compiled to WebAssembly using Emscripten. Magnum provides battle-tested decoders and encoders for a wide range of formats — the same code used in native desktop applications.
The conversion flow:
- Your file is read into an
ArrayBufferusing the File API - The buffer is passed to one of four parallel Web Workers
- Inside the Worker, the WASM module decodes the source format and re-encodes to the target format
- The result is transferred back to the main thread and triggered as a download
Four workers run in parallel, so batch conversions of dozens of files complete quickly without freezing the page.
Supported image formats
- Input (14 formats): BMP, DDS, GIF, HDR, ICO, JPEG, KTX, KTX2, PGM, PIC, PNG, PPM, PSD, TGA, WebP
- Output (8 formats): PNG, JPEG, BMP, TGA, HDR, EXR, KTX2, WebP
Audio Conversion
Audio and video-to-audio conversion uses the browser's built-in AudioContext.decodeAudioData() to decode the source file, then encodes to the target format in a Web Worker.
- MP3 and OGG encoding uses wasm-media-encoders — WebAssembly builds of LAME (MP3) and libvorbis (OGG)
- WAV encoding is pure JavaScript — a RIFF header plus 16-bit PCM interleaved samples
- FLAC encoding uses the browser's native
AudioEncoderAPI (Chrome 107+), with a WAV fallback for browsers that do not support it
Input formats include MP4, M4A, WAV, OGG, FLAC, WebM, and MP3 — any container the browser can natively decode.
PDF Conversion
Image-to-PDF conversion uses pdf-lib, a pure JavaScript PDF library that creates and manipulates PDF documents in the browser. Each image is decoded via the Canvas API, re-encoded as JPEG, and embedded as a full page in the PDF.
When OCR is enabled, Tesseract.js — the leading open-source OCR engine — analyses each image for text and places it as an invisible selectable layer in the PDF. The OCR model (~10 MB) is downloaded on demand and cached by the browser.
Why Client-Side?
Privacy
Your files never leave your device. There is no server to hack, no database to breach, no "files are deleted after 30 minutes" promise you have to trust. Read more about the privacy risks of server-based converters.
Speed
Server-based tools require uploading your file, waiting in a queue, and downloading the result. WebConverter skips all three. A 50 MB image converts in under a second.
No Limits
Because there is no server infrastructure to pay for, there are no file-size limits, no daily conversion caps, and no "upgrade to pro" gates.
Works Offline
WebConverter can be installed as a Progressive Web App. Once installed, it works without any internet connection — you can convert files on a plane, in a rural area, or during a network outage.
Lower Environmental Impact
No data transfer means no network energy. No server processing means no data-centre electricity. Read about the hidden energy cost of server-based converters.
Open Source
WebConverter is free and open source. You can inspect the code, report issues, and contribute on GitLab.