The Image That Wouldn't Upload

You've been there. A form with an upload field. A perfectly good image. And a message that says the file is too large, the wrong format, or the wrong dimensions.

In 1996, a web designer in California typed bgcolor="#FF0000" into an HTML file and saw red. Literally. The hexadecimal colour code — six characters representing the precise mixture of red, green, and blue light — became the standard way computers describe colour on screens.

Thirty years later, we still use hex codes. We also use RGB. And HSL. And HSB (which is different from HSL). And CMYK for print. And Pantone for brand guidelines. And OKLCH for modern CSS. And LAB for perceptual accuracy. And named CSS colours that occasionally disagree with each other about what “dark grey” looks like.

This is the colour tower of Babel. Every system describes colour differently, and converting between them is a daily task for anyone who works across design tools, code editors, and print workflows.

A designer receives a brand guideline specifying Pantone 286 C. They need the hex equivalent for a website, the RGB values for a video overlay, the CMYK breakdown for a business card, and the HSL values for a CSS animation. Four conversions for one colour. Multiply that by a brand palette of eight colours and you’re doing arithmetic that feels like it should have been automated decades ago.

Image formats have an equivalent fragmentation problem. JPEG, PNG, WebP, HEIC, AVIF, TIFF, BMP — each with different browser support, different compression profiles, different transparency support, different size implications. What uploads to one platform rejects on another. What looks perfect on a Mac renders wrong on Windows. What passes a 5MB limit as a PNG is 12MB as a TIFF.

It has been automated — but always behind a gate. Format converters are built into design tools that cost $20/month. Online converters are riddled with ads, give inconsistent results, and often can’t handle the format you actually need. Users end up bookmarking three different websites for three different conversions.

The underlying problem is simpler than the ecosystem makes it look. Most image format conversions are deterministic. JPEG to WebP. PNG to JPG. HEIC to anything-else. These are solved problems — the codecs have been open-source for decades. What’s missing is a clean interface that runs locally, doesn’t upload your files, and handles the full range of cases without asking you to create an account.

What should exist is a single surface where you drop any image and get back the format you need. No account. No ads. Just a conversion.