โš™๏ธ 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

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.

Ready to convert a file?

Free, private, instant โ€” no account or upload required.

Start Converting โ†’