all notes

7 min read devtoolsprivacy

I shipped a super fast bulk image converter that never uploads anything

Every image converter I tried wanted my files first and gave me a download link second. The rest of the experience was worse: slow queues, confusing UX, features gated behind logins and subscriptions, daily conversion limits, dark patterns pushing the paid tier, random ads between steps. That order bothered me: my screenshots and memes traveling to a stranger server just to come back smaller.

The itch got specific. My phone keeps filling with screenshots, memes, saved posts and camera clicks, and every backup pushes me closer to the end of a free cloud tier or a full SSD. I needed to convert thousands of images in bulk, with no signup and no upload queue, and take GBs back. So I built PicToWebP, and the source lives on GitHub.

Here is the number that matters: 10,000 images converted in under 100 seconds in a test run. The fastest bulk converter I know, running completely private, 100% open source and free without any limits. No accounts, no quotas, no watermarks.

Why WebP, specifically

Deleting photos was never the answer, and neither was paying every month to store them. Most of my photos were saved as JPEGs and PNGs, which take up far more space than they need to. WebP keeps the exact same photo in a much smaller file: around 80% smaller, looking identical. Smaller files were the whole answer.

The intuition: conversion never needed a server

Converting an image means decoding pixels and re-encoding them in a tighter format. Both halves run on ordinary hardware in milliseconds. The server in most converters exists for the business model, not the math. Remove it and the whole product collapses into something beautifully boring: drop files in, get WebP out, nothing leaves the machine.

  • Privacy by construction: personal photos never touch a network
  • Batch economics: a thousand images cost the same as one, which is nothing
  • Offline by default: it works on planes, in locked-down networks, behind a VPN

Built for thousands, not one

Most converters assume a handful of files. My library counts in the thousands, and every extra step per file multiplies: upload waits, queues, per-file dialogs. PicToWebP assumes bulk from the start. Select an entire folder, convert everything, see the savings per file. A backup that exceeded my free tier came back under it in one sitting.

Three editions, one idea

PicToWebP ships three ways, and all three keep every byte local. The browser edition needs no install: point it at a folder and the whole tree converts with its structure preserved. The Python CLI adds wider format support and a local web UI. The Rust CLI is the workhorse: in one real run it cut 2,598 images by 85.79% in 46 seconds.

Try the browser version to see what kind of savings your images get. For converting thousands of files in a jiffy on your laptop, the Rust CLI performs best: setup instructions are in the readme. The browser handles bulk too, just a little slower.

written by

I'm Aditya Vivek Thota (XQ), staff SWE at Visa and LinkedIn Top Voice 2020. I write about AI and engineering.