Methodology · File handling
File handling and network checks
Unuploaded reads and converts files in your browser. The checks below let you inspect network activity during a conversion.
For tools that need an extra decoder or encoder, complete one conversion online before trying them offline. Loading the page alone may not cache the extra code. This panel describes file handling and preparation, not a live readiness result. Cached code can be cleared or evicted.
The pipeline, start to finish
The browser reads a selected file into tab memory through the File API. For conversions such as JPG to PNG, its built-in decoder turns the image into pixels, a canvas encodes the output, and a Blob holds the result for download. HEIC uses a WebAssembly build of libheif to decode the image. Tools that export MP3 use the browser to decode audio into samples, then lamejs encodes those samples in the tab. MP3-to-MIDI instead analyses decoded samples and writes MIDI notes; it does not use the MP3 encoder. The GIF maker samples frames from the browser's video player and passes them to a GIF encoder. Analysis tools do different work: the morse decoder measures keying and returns text, while the BPM counter uses a filterbank and autocorrelation to estimate tempo and show alternative readings. Those analysis tools need no extra library download. Each tool page describes its own pipeline, including tools that preserve existing media data instead of re-encoding it. The site serves static pages and code from a CDN; it has no server-side converter, database or file-upload API.
Three checks for network activity
The network meter. The "network since file read" readout uses PerformanceObserver to count observed resource-timing entries that start at or after the meter arms. It arms before the tool reads its first file and does not reset for each file. It shows 0 in green and turns red when an entry appears. Requests that start earlier are excluded, even if they finish later. A later library load, retry or worker request can count, including a resource served from cache. The meter does not measure uploaded bytes or observe every channel, such as WebSocket traffic. A zero is not a complete privacy audit.
The developer-tools check. Press F12 to open your browser's developer tools before choosing a file, select Network and run a conversion. Inspect request destinations and payloads rather than relying on a count. Decoder, encoder and worker requests may be code arriving on your device rather than file data leaving it. This uses the browser's network panel rather than the site's own meter.
The airplane-mode check. Complete a conversion online first so any extra decoder or encoder has a chance to download and enter the cache. Disconnect the device from the internet, then convert another file without reloading the page. Success shows that this conversion can run locally with the code available in that tab. It does not establish what the page does online or whether a later offline reload will work.
Extra decoder and encoder downloads
HEIC tools use a 1.4 MB WebAssembly build of libheif v1.19.8, with the libde265 HEVC decoder. It is served unmodified from this site under the LGPL-3.0 license; the license text and provenance are published alongside it. The corresponding source is the libheif-js 1.19.8 package. The served decoder bundle's SHA-256 is recorded in the provenance file. The decoder download does not contain your photo and finishes before the photo is read. Complete one conversion online to prepare the decoder for offline use; clearing the browser cache can require it to download again.
Tools that export MP3 use the browser's native decoder and write MP3 with lamejs (LGPL), a JavaScript port of LAME: lame.sourceforge.net. The bundle is served unmodified and unminified; the ~518 KB download is its source code. The upstream license, full LGPL-2.1, LGPL-3.0 and GPL-3.0 texts, and pinned provenance are published beside it. The M4A, WAV and video-to-MP3 converters load the encoder before reading a file. The ringtone maker can read audio first; its idle-prefetched encoder or an export retry may start loading after the meter arms. Complete an MP3 export online before testing offline use; the cache may later be cleared or evicted.
The GIF maker uses the browser's <video> element to step through a clip, so it needs no extra video decoder. To write an animated GIF, it uses gif.js (MIT) in a background worker. Anthony Dekker's NeuQuant color quantizer is included with its original 1994 copyright notice intact, as its license requires. The license text and pinned provenance are published beside the files. These are the site's three third-party libraries: one decoder and two encoders. The GIF worker preparation wait has a deadline; a request starting after the meter arms can still count. The remaining tool code is original. The STL viewer and 3MF converter use the site's parsers and the browser's WebGL, with no extra library download.
Accounts, storage and metadata
The tools use no accounts, sign-ups, cookies or localStorage. Selected files and conversion results are held in tab memory; the service worker caches site pages and code for offline use, not your files. Files you download remain where you save them. Image conversions that redraw pixels through a canvas do not copy the original EXIF block, including GPS coordinates, device model and timestamps. The encoder can still add format metadata. Tools that preserve image streams handle metadata differently; check the tool's limits and the downloaded file. Note the capture date before converting if you need it.
Memory and browser limits
Conversion uses your device's memory. Decoded image pixels alone take about four bytes each, with more memory needed by the decoder and output canvas. A large HEIC image can strain a low-memory phone even when its compressed file is small. HEIC-to-JPG and HEIC-to-PNG produce 8-bit output, reducing ten-bit and HDR detail. Browsers without WebAssembly cannot run the HEIC decoder. Each tool page lists its format limits and the failures it reports.