April 18, 2023
The tool for non-fungible image processing: imgproxy for NFTs
NFTs, or non-fungible tokens, are a promising industry that opens up new business opportunities for applications and marketplaces. However, image processing in NFT projects is a sophisticated process that requires knowledge, experience, and a deep understanding of the niche’s essential requirements: on-the-fly processing of a large number of images, their copyright protections, and safety from cyber threats and online fraud.
Additionally, the overwhelmingly technical details in the NFT and crypto space mean that projects lean toward simplicity, at least in terms of infrastructure. This is why many NFT projects choose imgproxy, which offers ease of implementation, maintenance, and utilization.
Case and point: objkt.com is the largest and fastest-growing NFT marketplace on the Tezos Blockchain, offering digital artworks, music, collectibles, gaming items, and other virtual goods. Objkt users can buy and sell NFTs on the marketplace or try out both English and Dutch auctions.
Due to industry specifics, the use case of this NFT platform is a bit unconventional: 99% of the files they process live on IPFS, a decentralized P2P network. The availability of files and the time required to retrieve a file from IPFS are unpredictable, so they couldn’t put an image processing tool between IPFS and the end user, since the platform has to cache files first. (Later, when they incorporated imgproxy, the team also elected to cache the imgproxy output files and serve those.)
The project team explored all options before choosing an image processing tool. Initially, they considered SaaS solutions, but these were too expensive. So the team moved on to open source tools. Out of the few open source projects that fit the bill, imgproxy was the most promising one, so they tried it.
Since the project’s team built and kept their infrastructure as simple as possible, they valued imgproxy’s ease of implementation and its detailed and clear documentation.
Today, imgproxy runs on a single server, and they built their own media pipeline, which also runs on a single small server. It makes heavy use of Oban Pro to process jobs. The jobs workflow is basically as follows: retrieve all files related to a token, cache them on their CDN, pick the files they want to resize, actually resize them, and then cache them on their CDN. As the project grows and expands, the team finds imgproxy’s ability to process images from S3 buckets very helpful (even though they initially didn’t have this in their list of requirements for the “perfect” image processing tool).
Later, the project team was interested in several features from imgproxy Pro, like MP4 and PDF previews. Since the question of budget remained an important consideration, the team carefully reviewed the cost of this plan and found that at this price point, it was a no-brainer for them. So they ran with the imgproxy Pro version and never looked back!
Most people are interested in imgproxy because they probably have some level of familiarity with FFmpeg and ImageMagick, which are powerful tools in the hands of experts, but too low-level for most of us. imgproxy comes with sane defaults for everything, and we like that. Documentation is good too; the provided Docker images make it easy to run.
Last year, this NFT marketplace processed more than 20TB with imgproxy, and they expect to process even more in 2023. So, if the number of users on the platform grows, imgproxy is ready to provide convenient and easy scaling options.
Don’t hesitate to drop us a line if your application’s image processing has specific restrictions and requirements: we’ll help you find the fit with the suitable imgproxy plan, deployment, and customer development.