Every Myriadfile tool runs inside your web browser. When you add a file, it is read from your disk into the page’s memory, converted with code that runs on your own processor, and handed back to you as a download. At no point is it sent over the internet.
What loads, and from where
When you open a page, your browser downloads the page itself, its stylesheet and scripts, and fonts, all from this website. Heavier libraries load only when a tool needs them: the HEIC decoder when you add an iPhone photo, the PDF library when you create or compress a PDF, the GIF encoder when you make a GIF, and each converter engine only when you convert that kind of file. They are hosted here, at fixed versions, with their licences.
The only other things that load are advertising and, if enabled, privacy-friendly analytics. Those scripts can see which page you visited, as on any ad-supported site, but they cannot read your files: your files exist only inside the page’s memory and are never given to them.
The technology behind each tool
- Images
- Your browser decodes JPG, PNG, WebP, GIF, BMP and usually AVIF natively. HEIC is decoded by heic2any, a build of the open-source libheif decoder for the web. Output is drawn on an HTML canvas and encoded by the browser into JPG, PNG, WebP or, where supported, AVIF.
- Target sizes
- To hit a size in KB, Myriadfile encodes the image several times at different qualities, keeping the best one that fits, a binary search that takes a fraction of a second per image.
- PDFs
- Mozilla’s PDF.js renders PDF pages to a canvas; pdf-lib assembles new PDFs from images.
- Subtitles
- Subtitle files are text. They are parsed and rewritten entirely in JavaScript, with timing maths you can check on each tool page.
- Video and audio conversion
- The converter uses Mediabunny, which reads and writes MP4, MOV, MKV, WebM, MP3, WAV, FLAC, OGG and more, and your browser’s WebCodecs encoders. When the streams already suit the new format they are copied without re-encoding. Small WebAssembly encoders fill in for MP3, AAC and FLAC where the browser has none, and FFmpeg compiled to WebAssembly (about 32 MB, downloaded once) opens older formats such as AVI, WMV, FLV and WMA.
- Video tools
- The GIF, frame and vertical tools use your browser’s video player. Frames are copied to a canvas to build GIFs or stills; for vertical conversion the canvas is recorded with the MediaRecorder API.
- Documents
- Word files are read with Mammoth, Markdown with Marked and HTML with the browser’s own parser. PDFs are laid out with pdfmake, Word files written with the docx library, and Markdown with Turndown. PDF text is read with PDF.js.
- Presentations
- PowerPoint slides are drawn with pptx-preview and captured with html-to-image; new decks are written with PptxGenJS.
- Spreadsheets and data
- SheetJS reads and writes XLSX, XLS, ODS, CSV and TSV; js-yaml and fast-xml-parser handle YAML and XML.
Working offline
Myriadfile installs a small service worker, a standard browser feature that keeps a copy of the site’s files. Once a tool page shows the Works offline badge, that page and the libraries it needs are stored on your device, and the tool works without an internet connection. You can also install Myriadfile as an app from your browser’s menu.
Check it yourself
- Open a tool and your browser’s developer tools (F12, or Cmd+Option+I on a Mac).
- Choose the Network tab and clear it.
- Convert a file. You will see no request carrying your file. Requests from the ad network, if any, contain no file data.
- Even simpler: load a tool page, disconnect from the internet, and convert a file.
Limits that come with running in a browser
- Very large files are limited by your device’s memory. The tools warn you when a file may be too big.
- Videos whose codec your browser cannot decode (HEVC in some browsers, for example) are passed to the FFmpeg engine, which is slower.
- Old binary Office formats (.doc, .ppt) and scanned PDFs (which need OCR) are not supported; the converter says so instead of failing silently.
- Vertical video conversion records in real time, because browsers do not expose a faster video encoder everywhere.
- Compressing a PDF to a small size turns pages into images, so text is no longer selectable.