DEV Community

Cover image for Building a Browser-Based Video Upscaler with AI-Assisted Coding
Max/Wang
Max/Wang

Posted on

Building a Browser-Based Video Upscaler with AI-Assisted Coding

I finally finished the video upscaler for SquishyFile.

Honestly, this was probably the most frustrating tool I've built so far.

I want to start with one thing, though: if you think "vibe coding" means describing an idea in one sentence, letting AI generate everything, and coming back two hours later to a finished product — that's not how it went for me.

At least not with DeepSeek.

I used DeepSeek mainly because it's cheap. Claude Code is noticeably better at coding in my experience, but the cost adds up quickly when you're using it for a project like this.

With DeepSeek, I could usually get something running fairly quickly.

Then the fun started.

Fix one bug, another one appeared. Fix that one, and something else broke. Run another test, get a completely different result.

And video processing makes debugging even more painful because "it runs" doesn't necessarily mean "it works."

Sometimes the colors were wrong. Sometimes the output video was rotated. Sometimes the aspect ratio was messed up. Sometimes the result looked nothing like the original video.

A fix that worked perfectly with one video could break another one.

So the workflow became something like:

Write code → run it → find something broken → explain it to the AI → change the code → run it again.

Over and over.

For almost a week.

That's also why I don't really understand the "I built this in two hours with AI" posts I sometimes see. Maybe they're building something simple, or maybe I'm just particularly bad at this. But once you get into browser-based video processing, the first two hours can disappear just trying to figure out why the output is wrong.

Why run it in the browser?

The main reason is money.

SquishyFile is free and I'm not charging users for the tool. I also don't want to run expensive GPU infrastructure just to process videos for a free service.

Video upscaling is especially GPU-heavy.

If every uploaded video had to go through a cloud GPU on RunPod, AWS, or something similar, the economics would get ugly very quickly. A few dozen concurrent users could generate a GPU bill that makes no sense for a free tool.

So I decided to take the other approach:

Run the model directly on the user's machine.

No video processing server on my side.

That creates a very different set of problems, though.

Now the tool has to deal with different browsers, different GPUs, different amounts of memory, different video formats, and devices that can range from a powerful desktop to a laptop that starts getting very warm after a few minutes of processing.

And all of that has to happen inside a browser.

The part where I almost gave up

There were a few points where I seriously considered abandoning the browser approach and just putting the processing on a server.

It would have made some things much easier.

But then I'd have to keep paying for GPU time every month for a free tool.

That didn't really make sense to me.

So I kept going back to the code.

Some bugs were straightforward. Others took a while to understand. Sometimes I found the problem myself and told the AI exactly what was happening. Other times I had to go back and forth with it for a while before we finally found the actual cause.

It wasn't exactly the effortless AI-assisted development experience you see in demos.

But eventually, it started working.

Then it worked with another video.

Then another one.

And eventually I had something I was comfortable shipping.

It's finally live

The video upscaler now runs directly on the user's device.

There's no need to upload the video to my server for processing, and the tool is free to use without a usage limit.

If you have an old low-resolution video, or a video that looks noticeably worse after being compressed by a social platform, you can give it a try:

SquishyFile Video Upscaler

The interesting part for me isn't really that AI helped write the code.

It's that AI made it possible for me to keep working on a problem that would have been much harder to tackle alone.

It just didn't make the problem disappear.

I still had to run the code, look at the broken output, figure out what was actually wrong, and keep pushing until it worked.

After nearly a week of doing that, I'm just glad the thing finally has a shape.

Top comments (0)