Skip to content
dimasmongPublic

About

MoConvert — A free, private, browser-based image converter with batch processing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

MoConvert — Image Converter

Live site after deployment: https://moconvert.vercel.app (only if the name is still available and the site has been deployed).

MoConvert is a privacy-focused batch image converter. Processing runs in the browser; files are not uploaded to MoConvert or Vercel. The application is written in plain HTML, CSS, and JavaScript and includes its own dependency-free ZIP writer, BMP writer, and single-resolution ICO writer.

Features

  • Batch drag-and-drop and multiple-file selection, previews and per-file results.
  • Export: PNG, JPEG/JPG, WebP, BMP (24-bit), ICO (one resolution with PNG data), and AVIF only when the current browser can encode it. Unsupported AVIF export is disabled.
  • Inputs: PNG, JPEG, WebP, SVG, GIF, BMP, ICO, and AVIF when the browser decodes them. HEIC, HEIF, TIFF, JXL, and other formats depend on built-in browser decoding; there are no bundled HEIC/TIFF decoders. Do not assume that all extensions work.
  • Quality for lossy outputs; 100/75/50/25% resolution; configurable background color for formats without transparency; 32/64/128/256px icon export.
  • Animated GIFs require consent to use their first frame. Animated WebP and APNG are detected when possible and also require consent. Animation is never preserved.
  • EN (default)/ID translations and Light (default)/Dark themes, choices saved locally.
  • ZIP download is STORE (valid ZIP container, no second compression pass).
  • No API keys, account, database, upload endpoint, subscription, external libraries, or third-party fonts.

Important tradeoffs

  • Converting can change pixels, compress lossy, flatten transparent backgrounds, rasterize SVG, lose animation, and/or discard EXIF/GPS metadata, color profiles, and other metadata. This is a converter, not a lossless optimizer.
  • Canvas codecs are browser-defined. Encoded quality/size is not guaranteed across browsers. Native AVIF export is optional; browsers that cannot encode it fall back to other user-selectable formats without falsely renaming PNG as AVIF.
  • Converting SVG to raster requires readable SVG; malformed SVG or SVG requiring unsupported external resources may fail.
  • Max batch 60 files, 75 MB each; images over 45 MP or sides above 16384 px are rejected for memory safety. Mobile browser memory may impose lower practical limits.
  • ZIP writer limits 4 GB, most browsers may run out of memory much earlier.

Run or build without npm dependencies

Open index.html with a local HTTP server (e.g. python -m http.server 8080), or run:

npm run check
npm run build

npm run build copies the source into dist/. No npm install is necessary. Browser ES modules need HTTP or HTTPS: opening index.html directly as file:// may not work.

GitHub + Vercel — no coding

  1. Extract the ZIP.
  2. On GitHub, create a public empty repository named moconvert (turn off autogenerated README/license).
  3. Click uploading an existing file, drag the contents of the extracted folder (not the enclosing folder or ZIP) into GitHub. Include index.html, src, public, scripts, package.json, vercel.json; the hidden .github folder is optional.
  4. Commit with message Initial release MoConvert.
  5. Open vercel.com/new, select GitHub, and import dimasmong/moconvert.
  6. Use Framework Preset: Other, Root Directory: ./, Build Command: npm run build, Output Directory: dist, no environment variables. vercel.json already specifies build and output.
  7. Deploy and check the Ready status. Open the website and test JPEG to WebP, PNG to JPG, and download ZIP.
  8. Future commits on main automatically trigger a new production deployment.

GitHub button: points to https://github.com/dimasmong/moconvert. If you choose a different repository URL, update the href in index.html.

Structure

  • index.html: page structure
  • src/style.css: responsive themes and styles
  • src/app.js: interactions, local preferences, queue, ZIP/download
  • src/i18n.js: complete EN/ID translations
  • src/converter.js: browser-API conversion plus BMP/ICO writers
  • src/zip.js: standards-compliant ZIP writer
  • scripts/build.mjs: deterministic build
  • public/favicon.svg: MoConvert icon

Open-source

MIT License. The site is not affiliated with Vercel or GitHub.

About

MoConvert — A free, private, browser-based image converter with batch processing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages