← Back

ConvertAnyFormat

A privacy-first, serverless file conversion utility designed to run entirely inside your browser. No file uploads, no telemetry, and no heavy server-side dependencies.

Why Server-Side Conversion Sucks

Building a file converter is traditionally an infrastructure nightmare. If you want to let users convert a DOCX to a PDF or an image to another format, the standard approach is to spin up a backend service.

If you want to support office documents like Excel, PPT, or Word, you inevitably have to install LibreOffice or headless browsers on your host system. This leads to a whole mess of problems.

Bloated Infrastructure. Your Docker images swell to gigabytes just to include LibreOffice dependencies and system fonts. Scaling these containers dynamically becomes incredibly slow and expensive.

Security Risks. Accepting arbitrary files from the internet and executing complex parsing logic (like a Word document macro or a malformed PDF) on your own servers is a massive attack vector. You end up spending half your time building intense sandboxing just to stay safe.

Bandwidth Costs. When a user wants to convert a 500MB video file or a 100MB PDF, they have to upload it to your server, wait for processing, and download it back. You pay for that bandwidth twice, and the user experiences terrible latency.

The Privacy Black Hole. Almost every free file conversion site on the internet forces you to upload your documents to their servers. This is completely unnecessary, and it creates a massive security black box. You have no real guarantee of how they are storing your files, how long they keep them, or if they are scraping your sensitive data. Handing your personal or financial files over to a random cloud server just to convert a PDF is a huge, unnecessary risk.

The Solution: The Browser as the Compute Node

Why pay for server compute when modern client devices are incredibly powerful?

ConvertAnyFormat is an active project designed to eliminate the backend entirely. By using WebAssembly (WASM) and modern browser APIs, we are moving the actual conversion engines directly into the client's browser.

When a user drops a file into ConvertAnyFormat, the file never leaves their machine. The conversion happens entirely in-memory within their local browser sandbox.

Architecture

ConvertAnyFormat Architecture

The Technical Challenge

The primary hurdle we are actively trying to solve is the Office document ecosystem.

For media like images, audio, and video, compiling tools like FFmpeg or ImageMagick to WebAssembly is well-documented and works beautifully in the browser via Web Workers.

However, compiling a monolithic C++ desktop application like LibreOffice to WebAssembly just to handle Excel or PPTX files natively is a QUITE DIFFICULT. It results in a massive WASM payload that crashes the browser tab or takes minutes to load.

To get around this, we are exploring hybrid lightweight approaches for document rendering. Instead of trying to stuff an entire desktop application suite into a browser tab, we are using isolated, purpose-built Rust parsers compiled to WASM. The goal is to achieve true local conversion without the overhead of native desktop binaries.

Stack

Node.js · WebAssembly (WASM) · Web Workers · File System Access API