Sanitizr Docs
Static Browser Execution Architecture

Zero-Backend Security

Sanitizr operates strictly inside your web browser. No remote servers ever see your files, metadata, or IP address. Each file format uses a dedicated client-side processing pipeline.

Images — Canvas Re-encoding

When an image is loaded, Sanitizr draws pixel data onto an off-screen HTML5 Canvas context and re-encodes the image stream at 95% quality. This inherently drops all non-pixel metadata structures including EXIF header blocks, XMP XML packets, Photoshop IRBs, and GPS tags.

createImageBitmap()Canvas.toBlob()exifr (inspection)

Video & Audio — FFmpeg WebAssembly

Video and audio files are processed by FFmpeg compiled to WebAssembly, executing entirely in your browser tab. Container-level metadata is stripped using -map_metadata -1 with stream copy (-c copy) — no re-encoding means identical quality and fast processing. The WASM binary (~25MB) is loaded only once and cached.

@ffmpeg/ffmpegSharedArrayBuffer-fflags +bitexact

PDFs — pdf-lib In-Browser

PDF metadata is stripped using pdf-lib, a pure JavaScript library that runs client-side. The Info dictionary (title, author, subject, keywords, creator, producer, creation/modification dates) is cleared. Document content, formatting, and embedded resources remain untouched.

PDFDocument.load()setAuthor('')pdfDoc.save()

No External API Calls

All sanitization relies on browser-native Web APIs and client-side JavaScript libraries. Network requests are zero during file processing. The only external fetch is the one-time FFmpeg WASM binary download (cached by the browser for subsequent uses).