The JK Jung Times
TECHNOLOGY

Building a Production Image Pipeline with AWS S3

Upload, resize, optimize, and serve — the full lifecycle of user-uploaded images in I Love Hwarang's campaign system.

By JK Jung, Staff Developer | Los Angeles Bureau | Thursday, April 16, 2026

Building a Production Image Pipeline with AWS S3

Campaign pages on I Love Hwarang are image-heavy. Each campaign has a hero image, gallery images, and inline content images. Users upload these through the admin dashboard, and the platform needs to resize, optimize, and serve them efficiently. AWS S3 is the backbone of this pipeline.

Format selection was one of our earliest architecture decisions. We standardized on accepting JPEG, PNG, and HEIC uploads — the latter being critical since iPhone users account for over 60% of our admin uploads. The Lambda function strips all EXIF metadata during processing, both to reduce file size and to protect donor privacy. GPS coordinates, device identifiers, and timestamps embedded in photos could inadvertently leak sensitive information about campaign organizers.

The upload flow starts in the browser. The admin dashboard uses a custom ImageUploader component that validates file type and size client-side before uploading. We generate a pre-signed S3

...

Tags: AWS, S3, Next.js, Image Processing