How FileFlip works
FileFlip converts files by downloading a conversion engine into your browser and running it there. The engines are the same programs a desktop tool would use, compiled to WebAssembly. Your browser fetches the engine your conversion needs, reads your file from disk, and does the work in the tab. The file itself is never sent anywhere.
What is WebAssembly?#
WebAssembly is a binary instruction format that browsers execute at close to native speed. It means a program written in C or Rust, like ImageMagick or FFmpeg, can be compiled once and run inside a web page instead of being installed on your computer.
WebAssembly code runs in the same sandbox as the rest of the page, which is what makes this arrangement safe in both directions. The engine cannot reach your filesystem, and it cannot open a network connection that the page has not made. It sees exactly the bytes you hand it.
Which engine converts my file, and how big is it?#
FileFlip ships 9 conversion engines totalling around 130 MB, and downloads only the one your conversion needs. Every binary is served from fileflip.app rather than a third-party CDN, and your browser caches it, so the download happens once per engine rather than once per file.
| Engine | What it converts | Download |
|---|---|---|
| ImageMagickmagick-wasm 0.0.43 | Every image conversion, and the PNG step between images and documents | 14.8 MB |
| FFmpeg@ffmpeg/core 0.12.10 | Audio and video that WebCodecs cannot handle, and every subtitle conversion | 32.3 MB |
| mediabunny1.55.3 | MP4, MKV, MOV, WebM, MP3, WAV, FLAC and other formats the browser can encode natively | None |
| Pandocpandoc-wasm 1.1.0 | DOCX, ODT, EPUB, Markdown, LaTeX, HTML, RST and 40 other markup and office formats | 58.6 MB |
| MuPDFmupdf 1.28.0 | PDF and CBZ reading and writing, MOBI and XPS reading, and rendering a page to an image | 10.4 MB |
| Assimplibassimp 0.1.0 | All 68 3D model formats, including FBX, glTF, OBJ, STL and USDZ | 11.7 MB |
| libarchivelibarchive.js 2.0.2 | Reading ZIP, 7z, RAR, TAR, ISO, DEB and RPM, and writing compressed tarballs | 1.0 MB |
| fonteditor-core2.6.3 | TTF, OTF, WOFF, WOFF2, EOT and SVG fonts | 0.7 MB for WOFF2, otherwise none |
| JavaScript parsersjs-yaml, smol-toml, fast-xml-parser, papaparse | JSON, YAML, TOML, XML, CSV and TSV | None |
Why does converting a document download 58 MB?#
Converting a document downloads Pandoc, and Pandoc compiled to WebAssembly is a 58.6 MB binary. It is the largest engine FileFlip uses because it carries readers and writers for more than 40 markup and office formats in one module. Document conversions also load MuPDF, another 10.4 MB, because MuPDF is what reads PDFs and writes them. A DOCX to PDF conversion therefore pulls about 69 MB the first time you run one, and nothing on the second.
Image conversions are much lighter. ImageMagick is 14.8 MB and covers all 59 image formats. Audio and video are usually free: mediabunny drives WebCodecs, the browser's own hardware-accelerated encoder, which needs no download at all. FFmpeg's 32.3 MB only arrives when you ask for a codec or container WebCodecs will not touch.
Why does converting an image to a PDF go through PNG?#
Converting an image to a document runs two engines in sequence with PNG in the middle. ImageMagick reads your source image, whether it is a HEIC photo or a camera RAW file, and writes a PNG. MuPDF then takes that PNG and lays it onto a page to produce the PDF, EPUB or CBZ.
The reverse direction works the same way. MuPDF renders the document page to a PNG, then ImageMagick re-encodes that PNG into whatever you asked for. PNG is the bridge format because MuPDF both reads and writes it losslessly, and ImageMagick handles everything else, so one intermediate covers all 2,775 conversions between images and documents. When your source is already a PNG, or your target is, the extra step is skipped.
What happens to a document with more than one page?#
Converting a multi-page document to an image format gives you one image per page, numbered in order, delivered together as a zip. A ten-page PDF converted to PNG produces ten PNGs rather than a single picture of the cover.
You can also ask for part of a document. The Pages field on a document conversion takes something like 1-5, or 1, 4, 8-10, and MuPDF renders only those pages, which is faster than converting the whole file and throwing most of it away. Leave it empty and you get the whole thing.
How can I verify that nothing is uploaded?#
Watch the network traffic yourself. This takes about thirty seconds and it is the reason to trust FileFlip over a service that promises to delete your files later. A deletion promise cannot be checked from outside. An empty network log can.
- 1Open a FileFlip conversion page.
- 2Open your browser's developer tools. Press F12 on Windows or Linux, or Command, Option and I together on a Mac. Then choose the Network tab.
- 3Clear the network log with the circle-and-slash button.
- 4Add your file and convert it.
- 5Read the list. Every request is a GET to fileflip.app for a page asset or an engine binary. There is no POST, no upload, and no request whose size matches your file. Sort by the Size column and your file will not be there.
For a stronger check, convert one file so the engine is cached, then tick the Offline box in the Network tab and convert another. FileFlip keeps working with no network connection at all, which is only possible because the conversion runs on your machine.
Where does the conversion actually run?#
Conversions run inside the browser tab that has FileFlip open. Document and 3D model conversions run in a Web Worker, a background thread the browser gives the page, so a long conversion does not freeze the interface. Audio and video conversions hand the work to WebCodecs or to FFmpeg's own worker. In every case the data stays inside the tab's memory and is written back out as a file download when the conversion finishes.
What are the limits?#
Memory, not file size
FileFlip imposes no size cap, because there is no server disk to fill. The real ceiling is how much memory your browser tab can hold, since the file and the engine both live there. Desktop browsers handle multi-gigabyte video. Phones give a tab a few hundred megabytes before killing it.
Some formats can only be read
Camera RAW files such as CR2, NEF and ARW convert out to JPG or PNG, and nothing converts into them. The same goes for RAR, 7z, ISO, DEB and RPM archives, and for MOBI and XPS documents.
Video does not convert to GIF today
FileFlip routes video to other video formats and to audio. The path from a video container to a still-image format is not wired up.
The first conversion of a kind is the slow one
You wait for the engine download before any work starts. After that the browser cache serves it and the wait disappears.
Last updated 26 August 2026.
Try it on a file
Watch the network tab while it runs. That is the whole argument.