For about two months last year I had a habit: check the API usage graph before anything else in the morning. Not because traffic was flattering — because every time that line went up I had to work out how much credit was left. Image processing on my site ran entirely through a third-party API, billed per call.
Some background. I run a small tool site: users upload an image, something happens to it, they download it. Compression, format conversion, background removal — all third-party APIs, a few cents to a few tens of cents per operation. Cheap in isolation. The problem is it's welded to usage, and the more people use it the more I pay, on a site that's free. When a referral sent me a modest amount of traffic, my first reaction wasn't delight, it was opening a calculator. Background removal was the expensive one — an AI endpoint priced an order of magnitude above ordinary operations — and there was a month where that single feature accounted for more than half my server costs.
After moving it
I moved everything movable into users' browsers, using ImgIng. Strictly speaking I didn't integrate it; I put a link on the site and let people process things themselves, keeping only the business flow on my side. Lazy, but for one person it's the least work. What moved: compression, format conversion, AI background removal, the animation workshop, multilingual OCR. It later added an image editor, AI upscaling and the whole PDF side — compression, PDF to image, extracting embedded originals, content extraction, HTML both directions — plus DOCX and PPTX to offline HTML, and I hung those off the site too.
What happened to the arithmetic: the marginal cost of that part went to zero. Not lower — gone. The work runs in the user's own browser on their CPU and memory, and I pay for static hosting and bandwidth. Traffic can climb and I don't open the calculator. That's also why it can be free and unmetered with no account and no watermark; I did wonder for a while whether there was a hidden charge somewhere and never found one in two months. Their explanation is that common formats run locally so an extra operation costs them nothing, which I verified — DevTools, Network tab, process an image, no upload request, preview src is a blob: URL. It's at imging.ai.
What it cost
The user's device absorbed that cost. Background removal is visibly slow on an older machine and the model downloads the first time. I effectively moved an expense off my bill and onto someone's waiting time, which doesn't sound great said out loud, but that's what happened; the people who accept it do so because there's no signup and no charge, and that trade is theirs to make. A few formats also wouldn't move — HEIC writing, TIFF, JPEG 2000 go to their server, colour-coded in the UI — so "not uploaded" is scoped to the features that take the local path.
Two things still open
First, I lost my data. The API dashboard used to show call volume, failure rate, which features got used; now there's nothing. I know people use it, but how well, and where they get stuck, I can only infer from scattered feedback. I haven't found a good answer to this — adding telemetry cuts against the "nothing gets sent" premise. Second, this path locked me into free. The flip side of zero marginal cost is that I can hardly charge for it: why would anyone pay for computation running on their own laptop. Not a bad thing exactly, but it did remove half the business-model options, and I didn't see that coming.
Top comments (0)