Posts

Showing posts with the label minio

Implementing Image Transformation Service with NextJS and imgproxy

Image
Introduction imgproxy is an efficient image processing and optimization service, featuring fast processing speeds, high security and low memory footprints because it is written in Go. The prominent advantages of imgproxy include the ability to resize, crop, compress and flexibly convert image formats (such as to WebP, AVIF) via URL. Notably, this service supports secure URL signing using HMAC encryption, which prevents DDoS attacks or unauthorized modifications of image size parameters from the client side. Although the NextJS Image component already supports automatic image resizing, it presents several limitations if you choose it for large-scale deployment Resized images stored in the cache of the .next folder only exist within a single NextJS server instance, making it difficult to share the cache when scaling up to multiple instances After building the project, the cache data is lost, or if you find a way to persist these resized images, a large dataset will still consume too much...

High-Quality Image Export with Konva and NextJS

Image
Introduction In this article, I will guide you through using Konva to export content you've created. Exporting can be done on either the frontend or backend, each with its own pros and cons: Frontend: Pushing processing to the frontend means the backend doesn't consume extra resources for this task. However, when exporting a template with too many elements, a user's machine with a weak configuration might not handle it, causing the app to crash. Backend: If the backend handles exporting, it will incur extra server costs. But in return, we can configure system scaling to support exporting large, complex templates. This simplifies backend processing and ensures the user interface always runs smoothly on the frontend. In short, if this export function isn't a highly critical part of your system that needs prioritization, you can let the frontend handle it. If you are deploying a commercial product, you should handle this on the backend to provide a smooth experience for th...