Under1MB Image Converter
Under1MB is a free browser-based image converter and compressor built by Mohit Goyal in plain JavaScript: 11 formats, no uploads, no signup and no server.
Timeline
Stack
About the project
I built the product, the site and the branding myself, and launched it in public on LinkedIn. Most online image tools upload your files to a server, put a signup wall in front of the download and cap how many images you can process a day. For anyone who just needs a product photo under a size limit or a batch of screenshots converted, that is a lot of friction. It is also a privacy question they should not have to think about. I wanted a tool where the whole job happens on the user's own device, so there is nothing to upload, nothing to sign up for and no limit to enforce. Under1MB does exactly that. You drop a file, the browser decodes and re-encodes it, and the result is downloaded from memory. Nothing leaves the machine. It supports PNG, JPG, JFIF, WEBP, AVIF, GIF, BMP, ICO, HEIC, HEIF and SVG, so it covers the formats that come off phones and cameras as well as the ones the web wants. A target-size mode hits a chosen file size, such as under 1 MB. That is the use case the name comes from: upload forms and marketplaces that reject anything larger. Batch processing takes a folder of images and returns a ZIP, and a resize option handles the dimension side of the same problem. Every step runs locally, so large batches finish as fast as the device allows rather than waiting on a queue. The stack is deliberately plain: JavaScript, HTML and CSS, with no framework and no backend. Doing the encoding in the browser was the whole point. Keeping the app dependency-free keeps it fast to load and simple to maintain. The target-size mode works by iterating on quality until the output lands under the requested size. That is only practical because the encode loop runs on the user's hardware with no round trip. The absence of a server is also what makes the no-limit promise honest, since there is no cost per image for me to recover. I launched it in public on LinkedIn, where the launch post drew 45 reactions as reported on the post. The product is live at under1mb.app, and a Pro tier is planned. What I learned building it is that a strong constraint, in this case no server at all, makes product decisions easier. Every feature either works client-side or it does not ship, and that discipline produced a tool that is simpler than the alternatives it replaces. Have an idea for a small browser tool that respects its users? Send me the brief and I will reply with a plan.