A file converter that runs locally in the browser via WebAssembly, converting images, audio, documents and video without uploading files to a cloud.
p2r3/convert
A browser-based universal file converter that runs conversions locally, able to convert between formats across different media types.
Open-source alternative to:CloudConvert
Zamzar
- Stars
- 4,203
- Forks
- 403
- Open issues
- 126
- Last commit
- 16 hours ago
What is it?
Convert to it! is an online file converter built to handle conversions that most web tools don't support, such as turning an AVI video into a PDF document. Most online converters only handle formats within the same medium, such as images to images or video to video, and require uploading files to a server. This project aims to always produce some output rather than leaving the user with an error.
The site is written in TypeScript and built with Bun and Vite. Conversion is organized around handlers: each wrapper normalizes an underlying conversion tool and declares the formats it supports, and a graph traversal finds a chain of handlers to reach the requested output format. Handlers can run in web workers, and external dependencies are bundled through a custom build system rather than loaded from CDNs.
The project can be run locally with Bun, deployed as a Docker container that serves the app under a /convert/ path, or built to a static dist folder for any HTTP server. Contributors add support for new formats by writing handlers and registering them in the handler list.
Key features
- 01Converts between formats across different media types, such as video to document.
- 02Runs conversions in the browser, so files do not have to be uploaded to a server.
- 03Automatically selects the input format and offers output options for the chosen file.
- 04Chains multiple handlers together to reach output formats that no single tool supports.
- 05Can be run locally with Bun, deployed via Docker, or served as a static build.
Use cases
- Converting an uncommon file format to a more widely supported one without installing software.
- Converting files locally when privacy means they should not be uploaded to a third-party server.
- Experimenting with format conversion paths that mainstream online converters do not offer.
- Hosting a private file converter on your own infrastructure with Docker.
Quick start
- 1
Clone the repository
git clone https://github.com/p2r3/convert - 2
Install Bun from bun.sh
- 3
Install dependencies
bun install - 4
Start the development server
bun run dev
Things to know
- Licensed under GPL-2.0, a copyleft license that requires derivative works to be open-sourced under the same terms.
- Conversions may produce output other than what you expected, since the tool tries to always return something.
- The first run is slow because it builds a cache of supported formats, and the Docker build is slow because it installs Chromium.
Topics
FAQ
- What is convert?
- A browser-based universal file converter that runs conversions locally, able to convert between formats across different media types. Convert to it! is an online file converter built to handle conversions that most web tools don't support, such as turning an AVI video into a PDF document. Most online converters only handle formats within the same medium, such as images to images or video to video, and require uploading files to a server. This project aims to always produce some output rather than leaving the user with an error.
- Is convert free to use? What license does it have?
- convert is open source under the GPL-2.0 license. Check the license terms before using it in commercial products.
- Is convert still maintained?
- Actively maintained. The last commit to convert was on Nov 6, 2026.
- What can I use convert for?
- Converting an uncommon file format to a more widely supported one without installing software. Converting files locally when privacy means they should not be uploaded to a third-party server. Experimenting with format conversion paths that mainstream online converters do not offer. Hosting a private file converter on your own infrastructure with Docker.
- How do I install convert?
- Clone the repository: git clone https://github.com/p2r3/convert Install Bun from bun.sh Install dependencies: bun install Start the development server: bun run dev
- Where can I get convert?
- The source code and installation instructions are on GitHub: https://github.com/p2r3/convert
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted online file converter supporting over a thousand formats, built with TypeScript, Bun and Elysia.
A self-hosted file-processing suite that converts, compresses, edits and OCRs images, video, audio, PDFs and documents, via a web UI, REST API or pipelines.
Self-hosted file converter and compressor for images, video, audio, documents, spreadsheets, subtitles and fonts, processed on your own server.
A browser-based image compressor for JPG, PNG and WebP that works fully offline, so images never leave your device.
A multi-track video editor that runs entirely in the browser, with local media storage, WebGPU effects, and in-browser export.