⚙️ Under the Hood

How Convertlo Works

Convertlo converts your files entirely inside your browser. There is no server receiving your data, no upload progress bar, and nothing stored in the cloud. Here is exactly how it works.

What happens when you convert a file

1

You select a file

When you drag and drop or click to browse, the browser reads the file directly from your disk into memory using the File API. The file data never leaves your device at this point — it is simply loaded into your browser's RAM, the same way an image loads when you open it locally.

2

The converter runs locally

Depending on the format, one of three in-browser engines processes your file: the Canvas API for images, the Web Audio API for audio files, or FFmpeg.wasm (a WebAssembly build of FFmpeg) for video files. All three run as JavaScript inside your browser tab — no external calls, no server requests.

3

The output is generated in memory

The converted file is built entirely in your browser's memory as a Blob object. For multi-page PDFs, each page is processed and collected. For batch conversions, all files are processed sequentially in memory.

4

You download the result

A temporary download link is created using URL.createObjectURL(). Clicking it saves the file directly to your device. The Blob is then released from memory. At no point was any data sent to any server.

Technologies used

🖼️

Canvas API

Used for all image conversions. Images are drawn onto an off-screen HTML Canvas, then exported at full quality to the target format using toBlob().

Images
🎵

Web Audio API

Used for audio conversions. Audio is decoded into raw PCM samples, then re-encoded to WAV (lossless) or MP3 using a WASM-compiled encoder at your chosen bitrate.

Audio
🎬

FFmpeg.wasm

A WebAssembly build of the open-source FFmpeg library. Downloaded once (~32 MB) and cached by your browser. Handles all video format re-encoding, audio extraction, and GIF creation.

Video
📄

PDF.js + docx

PDF.js (by Mozilla) parses PDF files and extracts text content. The docx library builds Word documents in-browser. Both run entirely in JavaScript with no server dependency.

Documents
📦

SheetJS (xlsx)

Parses and writes Excel XLSX files, CSV, and JSON — all in-browser. Handles spreadsheet data extraction without needing Microsoft Excel or Google Sheets.

Spreadsheets
🔒

Service Worker

Caches the app shell and libraries so Convertlo works offline after the first visit. Image, audio, and document conversions work fully offline. Video requires FFmpeg to be cached first.

PWA / Offline

Convertlo vs cloud-based converters

Feature Convertlo Cloud converters
Files uploaded to a serverNeverAlways
Works offlineYes (after first visit)No
Account requiredNoOften yes
Conversion limitsNoneUsually yes
WatermarksNeverSometimes
CostFree foreverFree tier, then paid
Speed for large filesDepends on your deviceDepends on server load
Data retention riskZero — data stays localVaries by provider

Want the full privacy breakdown? Read our No-Upload Image Converter guide for a deeper look at how 100% browser-based conversion keeps your files off any server.

Limitations to be aware of

💾

50 MB file size limit

All processing happens in your browser's RAM. The 50 MB cap exists to prevent out-of-memory crashes on typical devices. Images and documents handle this limit easily. Very large videos may be slow.

⏱️

First video conversion is slow

FFmpeg.wasm (~32 MB) downloads on first use. Subsequent conversions start instantly from cache. Audio and image conversions have no download requirement.

📋

Document layout is not preserved

Document converters extract text content. Complex formatting, images, fonts, and tables are not replicated. These are text extraction tools, not layout-faithful converters.

🍎

Safari video limitations

Video conversion via FFmpeg.wasm requires SharedArrayBuffer. Safari on iOS 16.4+ supports this. Older iOS versions may not support video conversion, though image and audio conversions work on all browsers.

Frequently asked questions

After your first visit, a service worker caches the app shell, converter libraries, and — once you've used it — the FFmpeg.wasm binary. From that point, image, audio, and document conversions work completely offline. Video conversions also work offline once FFmpeg has been cached. The service worker is currently on version 7 and updates automatically when you're online.
For images and audio, in-browser conversion using the Canvas API and Web Audio API is extremely fast — often faster than launching a desktop app. For video, FFmpeg.wasm runs the same FFmpeg code as the desktop version but with a small overhead from the WebAssembly sandbox, roughly 1.3–1.5× slower than native. For most everyday conversions (short clips, single files), the difference is imperceptible.
The limit is 50 MB per file. It exists because all conversion happens in your browser's RAM — the input, intermediate buffers, and output all live in memory simultaneously. On a typical laptop with 4–8 GB RAM, keeping conversions under 50 MB ensures the browser tab doesn't crash. If you regularly convert large video files, a desktop tool like HandBrake or FFmpeg directly is a better fit.
Image, audio, and document conversions work on all modern mobile browsers. Video conversion via FFmpeg.wasm requires SharedArrayBuffer support — Safari on iOS 16.4 and later supports this. Older iOS versions will see image and audio conversion work fine but video conversion may not be available. Chrome on Android works for video conversion.
Yes. Image and document converters support batch conversion using a parallel worker pool (2–4 concurrent jobs based on your CPU core count). Audio and video converters process files sequentially because FFmpeg.wasm is memory-intensive and running multiple video encodes simultaneously would exhaust browser memory on most devices. All batch results download as a ZIP file.
The conversion stops and all data is cleared from memory. Since nothing was ever uploaded to a server, there is no partial file sitting somewhere in the cloud. The original file on your disk is untouched. Simply open Convertlo again and re-upload the file to start over. For large video conversions on low-memory devices, closing other tabs before converting can help prevent crashes.

Ready to convert a file?

Free, private, instant — no account or upload required.

Start Converting →