About this product

Kundan

Here I am going to discuss about the intuition of this product/project. Also nothing is perfect and this project is far from perfect too. So we will discuss the shortcomings first, the shortcomings the maybe a deal breaker for me sometimes.

Then we will discuss the good parts of the project. The parts that I am proud of and the parts that I think are the best.

Shortcomings

As you may have noticed that each and every conversion/compression/manipulation is taking place in your hardware itself. You may think how it is working. Here's the secret sauce -> Web Assembly. As of 17th April 2024, I am using two npm packages for the conversion which under the hood rely on FFMPEG and IMAGE-MAGICK (basically a web assembly compilation of both).

The two packages are

Shortcoming 1:

The Binary/WASM files for both the tools are massive in size.The wasm file for imagemagick itself is of 16MB. Which could be a bummer if you are in a slow internet. Also in general for compressing a 500KB image you are loading a 16MB WASM file. Same goes for wasm file of ffmpeg it is around 30MB which is huge.

Shortcoming 2:

The Speed - The real deal breaker that could be for most the users would be the speed. As compared to native CLI based FFMPEG, ffmpeg wasm is performing with only 10% of the speed at best. For images & audios, it is unnoticeable but for say videos especially where formats like MKV are involved it feels slow.

There could be many reason that why WASM is not fast. It could be because of resource allocation from browser or any other factor but I am bullish on Web Assembly.

Shortcoming 3:

No support for some popular file formats (yet). For example conversion of PDF/SVG to any other format is not supported yet due to the dependency of magick-wasm on other tools such as inkscape for SVG which makes it difficult in Web Assembly.

Good Parts

Good Part 1:

It delivers on the promise and it really works.

Good Part 2:

It is a great learning experience for me. I have learned a lot and my first product/project I really want the world to use.

P.S. I am available for a hire. My Resume.