Image Converter
Converting a folder of phone photographs into something a website will accept is a ten-second job that the web has turned into an errand. This is that ten seconds, given back — and the design work is almost entirely in what it refuses to do.
- Discipline
- Design tools
- Client
- Self-initiated
- Year
- 2026
The problem
Every free converter asks you to hand your photographs to a stranger's server. Having taken them, it caps the batch, queues you behind whoever else is waiting, and sends back a file with a watermark or an upsell attached. None of that is required by the task. Decoding and re-encoding an image is arithmetic, and the browser has been able to do it locally for years — the upload exists to create the queue, and the queue exists to sell the way past it.
What got decided
- Do the work where the files already are
- Decoding, resizing and encoding all happen in the browser. Nothing is uploaded, which removes the privacy question, the file-size cap and the queue in one move — and means metadata doesn't survive the trip either, since there is no trip.
- One file at a time, on purpose
- Converting a whole batch in parallel is faster right up to the point where a large set exhausts the tab's memory and takes the page with it. Sequential conversion with per-file progress is slower on paper and finishes more often.
- Detect the encoders, don't assume them
- Browser support for writing AVIF and WebP is uneven. Unsupported targets are detected and disabled rather than offered and then failed — an option that isn't there is honest, and one that silently produces nothing is not.
- Resize by longest edge
- The control people reach for is quality, and the one that actually saves the megabytes is dimensions. Leading with longest edge puts the effective lever first.
What shipped
- HEIC and HEIF in — the format iPhones write and most software still refuses
- JPEG, PNG, WebP and AVIF out, with unsupported targets disabled rather than guessed
- Batch conversion with per-file progress, returned as a single zip
- Resize by longest edge, and a chosen colour behind transparency where the target format can't carry it
Use the converter — the claims above are all checkable from there.