ABOUT

Convert-it Convert-it is a free, open-source universal file converter that runs entirely in your browser. No uploads, no servers, no signups — your files never leave your device.

Built for developers, designers, and anyone who needs quick, private file conversions without the hassle of sketchy online tools or bloated desktop software.

HOW IT WORKS

01
Drag & Drop

Drop your files or click to browse. Convert-it auto-detects the format and suggests available conversions.

02
Customize

Tweak quality, delimiter, bitrate, or preset settings per file before converting.

03
Download

Get your converted file instantly. Download individually or zip all results at once.

SUPPORTED FORMATS

IMAGE

JPG, PNG, WebP, AVIF, JPEG XL, GIF, BMP, ICO, SVG, HEIC, TIFF

VIDEO

MP4, WebM, AVI, MOV, MKV, FLV, M4V, 3GP, GIF, Animated WebP, MPEG, VOB, MPEG-TS, WMV, ASF, F4V

AUDIO

MP3, WAV, AAC, OGG, FLAC, M4A, WMA, OPUS, AIFF, AC3, WavPack, CAF, DTS, AMR

DOCUMENT

TXT, Markdown, HTML, PDF, Word (DOCX), ePub, SRT, WebVTT

DATA

CSV, JSON, XML, YAML, TSV, Excel

PRIVACY

Your files never leave your browser. All conversion happens locally using WebAssembly and the Canvas API. We don't upload, store, or have any access to your data.

We run no analytics or tracking scripts — no cookies, no fingerprinting, and nothing tied to your files. Video and audio conversion downloads a ~31MB FFmpeg engine from our own CDN the first time you use it; your files are never part of that request. The bar above the drop zone shows, live, how much the app has sent and received over the network in this browser, as counted by its service worker: “sent” stays at 0 B. File size limits (100MB images, 500MB video, 200MB audio) prevent browser memory exhaustion.

Stored on this device, and nowhere else

  • Recent conversions: file name, formats, sizes and time, at most 30. Untick “Keep history on this device” under Recent and nothing is written (unticking also deletes the list).
  • Your theme, language and output-name template.
  • App files cached for offline use: code, codecs, fonts, OCR data and the FFmpeg engine. Never your files or results.
  • A running count of bytes sent and received, for the network badge.
  • Files shared to the installed app, only until the page picks them up a moment later.
  • Conversion counts per format pair (done, failed with the error type, average time), for the stats panel. No file names. Turning history off stops and deletes them.
  • Clearing this site’s data in your browser settings removes all of it.

OPEN SOURCE

Convert-it is MIT-licensed and open source. The full codebase is available on GitHub. Contributions, bug reports, and feature requests are welcome.

RECENT IMPROVEMENTS

HEIC and AVIF decode — convert iPhone and modern web photos (lazy-loaded WASM)

ePub export — convert TXT, Markdown, and HTML to e-books

Animated WebP output from all video formats via FFmpeg

Error boundary — caught errors show a fallback UI instead of a white screen

Automated CI pipeline — typecheck, lint, test, and build on every push

Real-time FFmpeg progress tracking for video/audio conversions

File size limits with early rejection (100MB images, 500MB video, 200MB audio)

FFmpeg WASM error handling with graceful failure recovery

Auto-generated conversion map — no manual sync between registry and UI

Extracted job management into reusable useJobManager hook

i18n support with 5 languages and dynamic locale loading

Dark/light theme toggle with system preference detection

Preview panel with copy-to-clipboard for text results

Conversion history persisted in localStorage

PWA support with manifest and app icons

Deduplicated FFmpeg progress tracking and MIME-type logic across video/audio conversion

Unit test suite covering converters, job management, and i18n

Self-hosted FFmpeg core on Cloudflare R2 — no third-party CDN in the conversion path

No theme or language flash on first paint

Works with browser storage blocked — theme, language, and history degrade instead of crashing

Browser smoke suite that checks the downloaded bytes, not just that the UI turned green

Removed all server-side code and visit tracking — the app is a pure static export

Large-file warning before you convert, with limits tuned to what browser memory actually survives

Fixed stale preview content when switching between converted results

Image output encoded via jSquash WASM codecs (mozjpeg/libpng/libwebp) instead of canvas.toBlob — better quality, smaller files

Lossless PNG optimization with oxipng (Rust) as a post-pass — smaller PNGs with zero quality loss

SVG rasterization via resvg-wasm with a bundled Noto Sans font — renders real glyphs, no browser font variance

PDF as input — convert PDF pages to PNG/JPG/WebP and extract text to TXT/HTML (pdfium-wasm)

Multi-page PDF → image zip with 1×/2×/3× render scale (jszip)

XML and HTML exports escape special characters and turn spreadsheet headers like “First Name” into valid tags; TXT, Markdown, and JSON → PDF keep their line breaks

Video → WebM works again (VP8 + Vorbis), FFmpeg failures explain themselves, and progress follows the clip's real length

Zip downloads no longer overwrite files that share a name, and HTML input is parsed without running any of its scripts

Unicode PDFs: Greek, Cyrillic, Vietnamese, Chinese, Japanese and Korean now render as real text, and Markdown keeps its headings, lists, code, quotes and tables

Fixed PDF → image colours (red and blue were swapped), and PDF pages can now be cropped, resized and compressed like any image

ePub output passes the W3C validator and is split into chapters, with a table of contents, embedded images and the right language

Real-world XML converts to CSV/TSV/YAML, Excel files convert every sheet, and large CSV files stream with live progress

Video converts several times faster with your browser's built-in codecs, and FFmpeg takes over for anything they can't handle

Works offline: install it as an app, converters you have used keep working without a connection, and “Save for offline use” caches the rest

Clearer errors: a failed conversion says what went wrong (too large, out of memory, damaged file, engine not loaded) and what to try next

Settings show only the options that affect your conversion (video output now has an audio bitrate), and “Add files” works after the first file

Video → GIF with a proper colour palette, and animated WebP, with frame rate, size and trim; trim any audio or video on a scrubber, and resize or mute video

AVIF and JPEG XL output, and JPEG XL files can be opened

PDF tools: pick, reorder, rotate or split pages, shrink scanned PDFs, turn images into PDFs, and merge several files into one

See a photo's hidden metadata (location, camera, date) and choose to remove it, keep it, or keep it without the location

Word documents: DOCX to HTML, Markdown, text, PDF or ePub, and Markdown, HTML or text to DOCX; tables now survive HTML → Markdown

Read text from images and scanned PDFs (OCR) in eight languages, on your device

Subtitles: SRT ⇄ WebVTT, fix their timing, or pull out a transcript

Drop whole folders (their structure is kept in the zip), name outputs with templates like {name}-{w}x{h}, and dropped files are no longer added twice

Cut a section out of the middle of a clip, and burn subtitles (.srt or .vtt, in any of the supported scripts) into a video

Quality presets: Smallest, Balanced, Best or Lossless for video, Full, Web or Email for photos, with the raw settings under “Advanced”

Apply one file’s settings to every other file going to the same format

Files we can’t convert say what they are and what to export them as; misnamed ones (a PDF with no extension, a .jfif) are recognised by their contents

Undo Clear, or removing a file, for ten seconds (or with Ctrl/⌘+Z)

Compare before and after with a slider, with each side’s size; play video and audio results in place

Paste files, screenshots or a range from a spreadsheet; copy image results to the clipboard

Installed as an app: share files to it from other apps, or open them with it

See what the app has sent (nothing) and received over the network; turn off history so no file names are kept

HEIC: the main photo is converted, not just the first image in the file, or every image as a zip

Your own conversion stats, per format pair, kept on your device; copy them into a bug report if you like

Old and broadcast formats read directly: MPEG, VOB, MPEG-TS/M2TS, WMV, F4V video and AIFF, AC3, DTS, WavPack, CAF, AMR audio

TIFF scans and exports open too: LZW, Deflate, JPEG, PackBits and CCITT fax compression, CMYK and 16-bit (first page of a multi-page file)

TECH STACK

Framework
Next.js 15
Language
TypeScript
CSS
Tailwind CSS
Motion
Framer Motion
Video/Audio
WebCodecs + mediabunny, FFmpeg WASM
Images
jSquash WASM
SVG
resvg WASM
PNG Optimize
oxipng
PDF
PDFium WASM
PDF tools
pdf-lib
Word
mammoth
OCR
tesseract.js
Photo metadata
exifr
HEIC/AVIF
libheif-js
Spreadsheets
jszip + fast-xml-parser
Hosting
Cloudflare Pages + R2