Back to all projects
Web App
Media
Full-Stack

QRGallery

A QR-based photo upload system for events where guests upload instantly, hosts moderate content, and everyone gets a clean private gallery with controlled sharing.

QR Gallery

Role

Full-Stack Developer & Designer

Timeline

3 months

Year

2024

Stack

Next.js
TypeScript
AWS S3
CloudFront
PostgreSQL
Sharp
TailwindCSS

The Problem

At weddings, parties, and corporate events, photos scatter across Instagram, iMessage, WhatsApp, and personal camera rolls. Hosts can’t collect everything, and privacy and moderation are nearly impossible.

The Solution

Guests scan a QR code, upload photos and videos to a dedicated event portal, hosts moderate submissions, and approved media appears in a private gallery with share controls. No app download required — entirely browser-based.

Key Features

The capabilities that make it work.

Event creation with unique print-ready QR codes

Mobile-first upload portal — no app required

Guest identity options: nickname, phone, or anonymous mode

Upload queue with spam protection and file validation

Moderation panel with approve/reject, batch actions, and reporting

Private gallery with share-link controls and expiration dates

Download options for single files, bulk exports, and curated albums

Live slideshow mode for venue screens and projectors

QR Gallery screenshot 1
QR Gallery screenshot 2
QR Gallery screenshot 3

Architecture

Object storage on S3 with CloudFront CDN delivery for fast media access globally. Background processing handles thumbnail generation, compression, and deduplication hashing. Database models span events, uploads, moderation states, and guest sessions. QR generation paired with short URLs for seamless scanning.

Challenges Solved

The hard problems behind the polished surface.

01

Building a zero-friction upload experience that works across every mobile browser without an app install

02

Designing a media pipeline that handles hundreds of concurrent uploads during peak event moments

03

Balancing privacy controls with shareability — making galleries private by default but easy to share intentionally

The Outcome

Processed over 10,000 uploads across events with zero downtime during peak moments. Average guest upload time under 8 seconds. Hosts reported collecting 3x more photos compared to traditional sharing methods.

What's Next

Where this product goes from here.

AI-powered photo deduplication and quality scoring

Face recognition for automatic guest-specific albums

Integration with professional photography delivery workflows