Methodology · File handling
File handling and network checks
Unuploaded reads and converts files in your browser. This page follows a file through each step, names the three libraries some tools download, and describes three ways to watch 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. If the browser later clears or evicts its cache, that code downloads again the next time you use the tool online. The panel describes how the site handles files; it does not check whether your browser is ready.
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, and some tools copy the existing media data without 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 the resource-timing entries it observes that start at or after the meter arms. It arms before the tool reads its first file and does not reset between files. It shows 0 in green and turns red when an entry appears. A request that starts before the meter arms is left out, even if it finishes later. A later library load, retry or worker request can count, including one served from the cache. The meter counts requests without measuring the bytes sent, and it cannot see every channel (WebSocket traffic, for one), so read a zero together with the two checks below.
The developer-tools check. Press F12 to open your browser's developer tools before choosing a file, select Network and run a conversion. Open each new request and check where it goes and what it carries. Requests for the decoder, encoder and worker files described below bring code to your device. This check reads the browser's own network panel, so it does not depend on the site's meter.
The airplane-mode check. Complete a conversion online first so any extra decoder or encoder has time to download and enter the cache. Then disconnect the device from the internet and convert another file without reloading the page. If it finishes, that conversion ran on your device with the code already in the tab. The result covers that tab and that file; what the page does online, and whether it loads again after an offline reload, are separate questions.
Extra decoder and encoder downloads
HEIC tools use a 2 MB WebAssembly build of libheif v1.23.5, with the libde265 HEVC decoder. It is served unmodified from this site under the LGPL-3.0 license, with the license text and provenance published alongside it. The corresponding source is the libheif-js 1.23.5 package, and the provenance file records the SHA-256 of the served decoder bundle. The decoder download does not contain your photo and finishes before the photo is read.
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, so the ~518 KB download is its source code. The upstream license, the 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, so the encoder it prefetches while the page is idle, or an export retry, can start loading after the meter arms.
The GIF maker steps through a clip with the browser's <video> element, so it needs no extra video decoder. To write an animated GIF, it runs 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 served beside the files. Before the meter arms, the GIF maker waits a limited time for its worker files to load, so a worker request that starts after that can still count. These are the site's three third-party libraries: one decoder and two encoders. The rest of the tool code is original. The STL viewer and 3MF converter use the site's own 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 stay in tab memory. The service worker caches the site's pages and code for offline use and does not store your files. Files you download stay where you save them. Image conversions that redraw pixels through a canvas do not copy the original EXIF block, so GPS coordinates, device model and timestamps are left out, though the encoder can add its own format metadata. Tools that keep the original image stream handle metadata differently; check that tool's limits and the downloaded file. If you need the capture date, note it before converting.
Memory and browser limits
Conversion uses your device's memory. Decoded pixels alone take about four bytes each, and the decoder and output canvas need more. Measured on the HEIC to JPG converter, a 12-megapixel photo uses about 500 MB of memory while it converts and a 48-megapixel photo needs over a gigabyte, so a large HEIC can strain a low-memory phone even when its compressed file is small. HEIC-to-JPG and HEIC-to-PNG produce 8-bit output, so ten-bit and HDR detail is reduced. Browsers without WebAssembly cannot run the HEIC decoder. Each tool page lists its format limits and the failures it reports.