When you convert a file on most websites, here's what actually happens: your file gets uploaded to a remote server, processed by software you can't inspect, and the result gets sent back. During that round trip, your file sits on someone else's computer. You have no guarantee it gets deleted. You have no guarantee it isn't logged, cached, or used for training data.

Client-side conversion is different. The conversion happens inside your browser, on your hardware, using your CPU and memory. The file never leaves your device. There's no upload, no server processing, no download. The conversion service literally never sees your data.

This distinction matters more than most people realize, especially when the files in question are tax returns, medical images, legal contracts, or proprietary business documents. This guide explains exactly how client-side conversion works, what it can and can't do, and how you can verify a site's privacy claims yourself in about 30 seconds.

How Most Conversion Sites Actually Work

The traditional file conversion flow looks like this:

  1. You select a file on your device
  2. The site uploads it to a remote server (often via a POST request to an API endpoint)
  3. Server-side software (FFmpeg, ImageMagick, LibreOffice, etc.) processes the file
  4. The converted file is stored temporarily on the server
  5. You download the result

This model has been standard since the early web because browsers historically couldn't do heavy computation. The server had the CPU power, the memory, and the software libraries. Your browser was just a thin client.

The privacy problem is structural. During steps 2-5, your file exists on infrastructure you don't control. The site's privacy policy might say files are deleted after conversion, but you have no way to verify that. Server logs might capture file metadata. CDN caches might retain copies. Backup systems might snapshot the disk while your file is on it. Some sites explicitly state they retain uploaded files for "service improvement" or to "train machine learning models."

Even well-intentioned sites face risks: a misconfigured temp directory, a failed cleanup cron job, or a security breach can expose files that were supposed to be ephemeral.

How Client-Side Conversion Actually Works

Client-side conversion flips the model entirely. Instead of sending your file to the software, the software comes to you.

When you load a page on a client-side converter, your browser downloads JavaScript code and (often) WebAssembly modules. These are the conversion tools themselves, compiled to run inside the browser sandbox. When you select a file:

  1. The browser reads the file into memory using the File API
  2. JavaScript or WebAssembly code processes the file data in RAM
  3. The result is constructed as a Blob (binary large object) in memory
  4. A download link is created pointing to that Blob

At no point does the file data leave the browser's memory space. There's no XMLHttpRequest, no fetch() call, no WebSocket message carrying your file. The network is simply not involved.

The Browser APIs That Make This Possible

Modern browsers are far more capable than people realize. Several web platform APIs work together to enable genuine file processing:

APIWhat It DoesConversion Use
Canvas API2D drawing surface with pixel manipulationImage format conversion (PNG, JPG, WebP, GIF, BMP, AVIF, ICO), resizing, cropping
WebAssembly (WASM)Near-native code execution in browser sandboxComplex codecs, parsers, and encoders compiled from C/C++/Rust
File API + BlobRead files from disk, create binary data in memoryFile input/output without server roundtrip
Web WorkersBackground threads separate from UIHeavy processing without freezing the page
SharedArrayBufferShared memory between threadsParallel processing for large files
OffscreenCanvasCanvas rendering in Web WorkersImage processing without blocking scrolling/clicks

The Canvas API alone handles a surprising range of image conversions. Drawing an image to a canvas and exporting it with canvas.toBlob('image/webp') is a genuine format conversion -- the browser's built-in encoders handle the pixel data repackaging. This is how ChangeThisFile converts between PNG, JPG, WebP, GIF, BMP, AVIF, ICO, TIFF, and SVG raster output: 84 image conversion routes, all running natively in your browser.

What Can Be Converted Client-Side

Client-side conversion covers more ground than most people expect. ChangeThisFile runs 445 of its conversion routes entirely in the browser. Here's what's feasible:

CategoryExamplesHow It Works
Image formatsPNG to JPG, WebP to PNG, HEIC to JPG, SVG to PNG, PSD to PNGCanvas API for raster formats; heic2any library for HEIC; psd.js for Photoshop files
Data serializationJSON to YAML, CSV to JSON, XML to TOML, TOML to INIJavaScript parsers/serializers (js-yaml, papaparse, built-in DOMParser)
SpreadsheetsXLSX to CSV, XLS to JSON, CSV to XLSX, ODS to TSVSheetJS library parses/writes Excel and OpenDocument formats
DocumentsDOCX to HTML, Markdown to HTML, HTML to Markdownmammoth.js for Word docs, marked/turndown for Markdown
SubtitlesSRT to VTT, VTT to SRT, ASS to SRTText parsing and reformatting
3D modelsOBJ to STL, PLY to glTF, STL to OBJGeometry parsing and vertex format conversion
Developer configsDocker Compose to K8s, Terraform to CloudFormationStructure-aware config transformation

The common thread: these are all tasks where the input can be parsed and the output can be generated using JavaScript or lightweight WebAssembly modules. The processing is bounded -- you're transforming structured data, not running a multi-pass video encoder.

What Genuinely Needs a Server

Not everything can run in a browser. Some conversions require software that is too large, too resource-intensive, or too dependent on system-level capabilities to work client-side:

CategoryWhy It Needs a ServerTool Used
Video transcodingFFmpeg is ~100MB compiled. Multi-pass H.264/H.265 encoding needs sustained CPU and memory that browsers throttle. A 1GB video could exhaust browser memory.FFmpeg
Complex document renderingRendering DOCX with full formatting fidelity, converting DOC (legacy binary format), or generating PDFs with precise layout requires a full office suite.LibreOffice headless
Ebook conversionEPUB-to-MOBI requires proprietary format handling. FB2, AZW3, and CBR parsing needs specialized tools.Calibre
Archive manipulationRAR extraction requires proprietary decompression. Complex archive operations need filesystem access.7-Zip
RAW photo processingCamera RAW formats (CR2, NEF, ARW, DNG) need demosaicing algorithms and color profile handling.dcraw
Font conversionTrueType/OpenType/WOFF glyph table manipulation requires fonttools.fonttools

For these cases, ChangeThisFile uses server-side processing with encrypted upload, immediate conversion, and automatic deletion. The file exists on the server only for the duration of the conversion (typically under 30 seconds). But the core point stands: if a conversion can run client-side, it should, because that's the only way to guarantee true privacy.

The Hybrid Approach: Client Where Possible, Server Where Necessary

ChangeThisFile uses a hybrid model with a clear rule: client-side is the default. Server-side is the fallback for conversions that technically require it.

Out of 991 total conversion routes:

  • 445 routes run client-side -- images, data formats, spreadsheets, documents, subtitles, 3D models, and developer configs
  • 546 routes run server-side -- video, audio, ebooks, archives, RAW photos, fonts, and complex document rendering

Every conversion page on the site tells you whether the conversion happens in your browser or on a server. If you see "Processed in your browser" on the conversion page, your file never leaves your device. If it says server-side, the page explains the upload-convert-delete flow.

This transparency matters because it lets you make informed decisions. Converting a screenshot from PNG to JPG? No privacy concern at all -- it's client-side. Converting a confidential contract from DOCX to PDF? That requires LibreOffice, which means a server upload. You might choose to use a local installation of LibreOffice instead. At least you know.

How to Verify a Site Is Actually Client-Side

Don't trust claims. Verify them. It takes about 30 seconds:

  1. Open your browser's DevTools -- press F12 on Windows/Linux or Cmd+Option+I on Mac
  2. Click the Network tab -- this shows every HTTP request the page makes
  3. Clear the existing entries -- click the clear button (circle with a line through it) so you start fresh
  4. Perform the conversion -- drop your file and convert it
  5. Inspect the network log -- look at the requests that appeared during conversion

What you should see on a genuinely client-side converter:

  • No large POST requests (file uploads show as multi-megabyte outgoing requests)
  • No requests to /api/convert, /upload, or similar endpoints
  • The only network activity might be analytics pings (small GET/POST requests under 1KB)

What you'd see on a server-side converter claiming to be private:

  • A large POST request matching your file size (the upload)
  • A subsequent download request for the converted file
  • These requests go to the site's API or a third-party processing service

This is a definitive test. The browser's Network tab doesn't lie. If your 5MB PNG doesn't appear as an outgoing request, it genuinely stayed on your device.

Try this on ChangeThisFile right now: go to PNG to JPG, open DevTools, and convert a file. You'll see zero upload traffic.

Client-Side Is Often Faster, Not Just More Private

Privacy isn't the only advantage. Client-side conversion eliminates the three slowest steps in the traditional flow: upload, server queue, and download.

Consider converting a 5MB image on a 20 Mbps connection:

StepServer-SideClient-Side
Upload file~2 seconds0 seconds
Server queue wait0.5-3 seconds0 seconds
Conversion0.3 seconds0.3 seconds
Download result~1.5 seconds0 seconds
Total4-7 seconds0.3 seconds

The actual computation time is roughly the same -- a CPU is a CPU. But client-side eliminates all the network overhead, which dominates the total time for typical file sizes (under 50MB).

Client-side also works offline. Once the conversion page has loaded and cached the JavaScript libraries, you can turn off your internet and keep converting files. The entire conversion pipeline is self-contained in the browser.

The speed advantage inverts for very large files (hundreds of MB or multi-GB), where a powerful server with 128GB of RAM and dedicated CPU cores will outperform a laptop browser. But for the vast majority of conversions -- images, documents, spreadsheets, data files -- client-side is both faster and more private.

The Real Limitations of Client-Side Conversion

Client-side conversion isn't a silver bullet. Honest limitations include:

  • Browser memory constraints. Browsers typically limit a tab to 2-4GB of memory. Try to process a 2GB video in a browser tab and it will crash. Server-side processing has access to the full system memory (often 64-128GB on conversion servers).
  • No persistent state. Each page load starts fresh. There's no conversion queue, no batch processing across sessions, and no recovery if you close the tab mid-conversion.
  • Limited codec support. Browsers implement a subset of the codecs and formats that server-side tools like FFmpeg support. You won't find HEVC encoding, ProRes output, or Dolby Atmos mixing in a browser.
  • CPU throttling. Browsers throttle background tabs and will terminate long-running scripts. A 60-second video encode might get killed by the browser before it finishes.
  • No hardware acceleration for all formats. While browsers use GPU acceleration for some image operations, most WebAssembly code runs on the CPU without access to hardware encoders.
  • Cross-origin restrictions. The browser security model prevents reading files from other origins, which limits integration with remote file sources.

These are fundamental constraints of the browser platform, not bugs to be fixed. They're why a hybrid approach (client-side default, server fallback) is the honest engineering choice.

GDPR and Privacy Regulations: Why Architecture Matters

Under GDPR, processing personal data triggers obligations: data processing agreements, records of processing activities, breach notification requirements, and data subject access rights. Under CCPA, collecting personal information triggers disclosure and opt-out requirements.

Client-side processing sidesteps these obligations for file content because the data is never collected. If a user converts a medical image from DICOM to PNG in their browser, the conversion service never receives, stores, or processes that medical image. There's no personal data to protect, no breach to notify, and no data subject request to fulfill -- at least for the file content itself.

This is architecturally different from a privacy policy that says "we delete your files after conversion." That approach still involves collecting the data, which triggers the full regulatory stack. Deletion is a mitigating control, not an avoidance of the obligation.

For organizations handling sensitive data -- healthcare providers bound by HIPAA, law firms with client confidentiality obligations, or companies in regulated industries -- client-side processing removes the third-party data sharing question entirely. Your compliance officer will have a much easier conversation about a tool that provably never receives the data versus one that promises to delete it promptly.

The question isn't whether client-side conversion is perfect -- it isn't. It has real limitations around file size, format support, and processing power. The question is whether your files need to leave your device for the conversion you need.

For image conversions, data format changes, spreadsheet exports, and document transforms, the answer is no. These can all run in your browser, instantly and privately. For video transcoding, complex document rendering, and ebook formatting, server-side tools are currently necessary -- and a good converter will be transparent about which is which.

Next time you convert a file online, open DevTools and check the Network tab. You might be surprised how many "privacy-first" converters are quietly uploading your files to a server. And once you see the difference, it's hard to go back.

Try a client-side conversion on ChangeThisFile and verify it yourself.