Open Source Credits
Favtoo relies on a set of trusted open-source libraries. We acknowledge and thank the maintainers and contributors behind these projects. The list below also includes notable copyleft components and the third-party hosted services that the site uses.
Browser APIs
Many tools use native browser capabilities such as the Canvas API and built-in codecs, enabling fast, local processing directly on your device.
Notable copyleft components
The following components are licensed under the LGPL. We comply by shipping them as unmodified, dynamically-loaded WebAssembly modules. The user can replace them, and the upstream source is linked.
FFmpeg is the audio and video engine that powers our video and audio tools. The unmodified ffmpeg.wasm core is served from our static asset CDN (Cloudflare R2) and cached in your browser via the Cache Storage API after the first download, so subsequent video and workflow runs reuse it without re-downloading.
How we comply: We do not modify or statically link FFmpeg. The core is loaded as a separate WebAssembly module fetched at runtime from a static URL, which keeps the binary outside our application bundle and lets advanced users override it with a self-hosted copy. Source code for the upstream build is available at https://github.com/ffmpegwasm/ffmpeg.wasm and https://github.com/FFmpeg/FFmpeg.
libheif is used (via the heic-to wrapper) to decode HEIC/HEIF images into JPEG/PNG entirely in the browser.
How we comply: libheif is loaded as a separate WebAssembly module at runtime. We do not modify the library. Upstream source is available at the link above.
heic-to (v1.4.2) is the JavaScript wrapper around libheif used by our HEIC to JPG and HEIC to PDF tools. We use the CSP-safe build (heic-to/csp), which is libheif compiled with USE_UNSAFE_EVAL=0 so the converter works under our strict Content Security Policy.
How we comply: heic-to is loaded as a separate, dynamically-imported JavaScript chunk at runtime. We do not modify the library. Users can replace the chunk with a self-hosted copy. Upstream source and the LICENSE file are available at the link above.
Third-party hosted services
Favtoo also relies on the following hosted services. None of them receive your file contents.
Favtoo is served as static files from Cloudflare. Cloudflare may keep infrastructure-level access logs governed by their privacy policy. We do not operate our own servers and do not collect or store IP addresses ourselves.
Plausible counts page views without cookies and without storing IP addresses. The IP, user agent, and domain are hashed into a daily-rotating session identifier and the raw IP is discarded.
When enabled, AdSense is loaded only after the user grants consent in our cookie banner. AdSense is proprietary and not open source; it is listed here so all third-party network calls are visible in one place.
Open-source libraries
React framework for production-grade web applications
JavaScript library for building user interfaces
React renderer for the DOM
Typed superset of JavaScript
Utility-first CSS framework
Icon library used throughout the interface
Utility for constructing className strings
JavaScript wrapper for ffmpeg.wasm; runs FFmpeg in the browser
Utility helpers for the ffmpeg.wasm wrapper
WebAssembly build of FFmpeg loaded at runtime from our static asset CDN and cached in the browser
Create and modify PDF documents in JavaScript
PDF parser and renderer by Mozilla
JavaScript port of Google’s Tesseract OCR engine. Powers our OCR PDF tool. We mirror the unmodified WebAssembly module and its Emscripten loader script (sourced from naptha/tesseract.js-core, https://github.com/naptha/tesseract.js-core) and the gzipped LSTM language models (sourced from naptha/tessdata at the 4.0.0_best_int path, https://github.com/naptha/tessdata) on our own static asset CDN (Cloudflare R2). At runtime the loader script’s embedded relative .wasm path is rewritten in-memory to the absolute R2 URL so it works inside a sandboxed Web Worker; the WebAssembly bytes themselves are served byte-identical to upstream. Files are cached in the browser via the Cache Storage API and HTTP cache after the first download. Each language model (English, Spanish, French, German, Portuguese, Italian, Dutch, Russian, Polish, Turkish, Arabic, Hindi, Japanese, Korean, Chinese Simplified) is fetched on demand only when the user picks that language.
Decrypt password-protected PDFs in the browser
Encrypt PDFs with passwords in the browser
JavaScript text differencing implementation
Markdown parser and compiler
QR code generator for browser and Node.js
Read and write Excel (.xlsx) workbooks
Note: Used for spreadsheet parsing. Not using SheetJS (xlsx package).
Raster to SVG tracing and vectorization
Barcode generator
Password strength estimation
Lexicographically sortable unique identifiers
GIF decoding library for parsing and extracting GIF frames
Fast GIF encoding library for creating animated GIFs
YAML parser and serializer for JavaScript
Lightweight TOML parser and serializer
Create, read, and edit ZIP files in the browser
Note: jszip is dual licensed. We use it under the MIT prong.
SQL query formatter supporting multiple SQL dialects
CSS minifier used by our developer tools
EXIF / metadata reader for JPEG, HEIC, TIFF, and more
Read and write EXIF metadata in JPEG files
Browser-side background removal using a U²-Net-family segmentation model running on ONNX Runtime Web. Powers our AI Background Remover.
Note: AGPL-3.0 obliges us to publish source for any modifications. We do not modify the library; the unmodified npm package and its model chunks are served from our CDN. Users can self-host their own copy by overriding the `publicPath` configuration option.
JavaScript port of HuggingFace Transformers, running ONNX-exported models in the browser. Powers our AI Subtitle Generator and AI Audio Transcriber via the Whisper-tiny model.
Note: Bundles its own onnxruntime-web 1.14.0. Model files (Whisper-tiny config, tokenizer, encoder/decoder ONNX) are mirrored on our R2 CDN under ai/whisper/v1/Xenova/whisper-tiny/. We do not modify the library or the model.
Microsoft ONNX Runtime compiled to WebAssembly. Powers AI Image Upscaler, Pose Detection, Smart Auto-Crop, Silero VAD inference (Silence Cutter, Filler-Word Remover).
Note: Loaded as a separate WebAssembly chunk from our R2 CDN at runtime. Unmodified upstream build. Multi-threading uses the standard SharedArrayBuffer + Web Workers pattern; the cross-origin isolation it requires is set up in public/_headers (COOP/COEP).
Maintained fork of face-api.js. Bundles TensorFlow.js and ships SSD MobileNet face-detection weights. Powers our AI Face Anonymizer and AI Profile Picture Maker.
Note: The library is loaded as a dynamic JS chunk; the model weights (manifest + binary shard) are mirrored on our R2 CDN under ai/face-api/v1/. Detection runs locally; faces are never transmitted off-device. We do not modify the library.
Pure-JavaScript .docx-to-HTML converter. Powers our DOCX to PDF tool — mammoth extracts the document content, then our pdf-lib pipeline renders the HTML to PDF.
Note: Loaded as a separate dynamically-imported chunk. Document parsing happens entirely in your browser; the .docx contents never reach a server.
OpenCV computer-vision library compiled to WebAssembly. Powers our Document Scanner (edge detection, contour finding, perspective warp).
Note: Loaded via a dynamic <script> tag with crossorigin="anonymous" so it satisfies our COEP=require-corp policy via standard CORS fetches. The unmodified opencv.js bundle (which embeds its WebAssembly inline as base64) is mirrored on our R2 CDN.
Recurrent-neural-network speech denoiser by Xiph.org. We use the pre-built jitsi/rnnoise-wasm distribution. Powers our AI Noise Reducer.
Note: The unmodified rnnoise.wasm binary (~110 KB) is mirrored on our R2 CDN. Audio frames are processed entirely in your browser — the denoiser is a pure DSP operation with no network calls.
Silero Voice Activity Detector. Powers our Silence Cutter and Filler-Word Remover.
Note: The unmodified silero_vad.onnx file (~2 MB) is mirrored on our R2 CDN. Inference runs locally via onnxruntime-web. The model has no telemetry; audio frames are classified as speech / non-speech entirely on-device.
Salient-object detection model. We use the ONNX export from danielgatis/rembg. Powers our Smart Auto-Crop tool.
Note: The unmodified u2netp.onnx file (~4.6 MB) is mirrored on our R2 CDN. Saliency maps are computed entirely in your browser via onnxruntime-web; image bytes never leave the device.
Practical Image Super-Resolution by xinntao et al. We use a community ONNX export of the x2plus checkpoint. Powers our AI Image Upscaler.
Note: The unmodified RealESRGAN_x2plus ONNX model (~67 MB) is mirrored on our R2 CDN. Inference runs locally via onnxruntime-web — full upscaling is performed on-device with no server-side rendering.
Google’s real-time pose-estimation model, ported to ONNX by the Xenova HuggingFace mirror. Powers our AI Pose Detection tool.
Note: The unmodified MoveNet Lightning ONNX (~9 MB) is mirrored on our R2 CDN. The 17-keypoint inference runs locally via onnxruntime-web — photos never leave the device.
OpenAI Whisper-tiny speech recognition model, ONNX-exported by the Xenova HuggingFace community. Powers AI Subtitle Generator, AI Audio Transcriber, and Filler-Word Remover.
Note: The unmodified config + tokenizer + ONNX weights (~42 MB total) are mirrored on our R2 CDN under ai/whisper/v1/Xenova/whisper-tiny/. Transcription runs locally via @xenova/transformers — audio bytes never reach a server.
Self-hosted under public/fonts/. The OFL license file ships alongside the .woff2 files.
We are grateful to the open-source community for making tools like Favtoo possible. If you believe a credit is missing or incorrect, please contact us at [email protected].