How we run image codecs in your browser
Every converter on Convertur makes the same promise: your file never leaves your device. That’s not a policy we enforce with a privacy statement — it’s a property of how the software is built.
This post walks through the pipeline that turns a raw file into a converted download, entirely inside your browser tab.
Why WebAssembly
Image codecs like the HEVC decoder behind HEIC are decades of highly-optimised C. Rewriting them in JavaScript would be slow and error-prone. WebAssembly lets us compile the original C to a format the browser runs at close to native speed.
The result is that the same code a desktop app would use runs in the page — no server round-trip, no upload, no queue.
Loading a codec on demand
A codec is only fetched the first time you open a tool that needs it. We split each decoder into its own chunk so the landing page stays light and you download exactly what you use.
Once a codec is cached, the tool works offline — proof that nothing depends on a server.
Keeping the main thread free
Heavy conversions run in a Web Worker so the interface stays responsive. Progress is streamed back to the UI, and cancelling a job simply tears down the worker.
For fast canvas-based conversions we skip the worker entirely — the operation finishes in a single frame.
The download step
When a conversion finishes we hold the result as a Blob in memory and hand you an object URL. Nothing is written to a server, and closing the tab discards it all.
Batch downloads are zipped in the browser too, using a streaming ZIP writer that never buffers the whole archive at once.