SBContact
Back to projects

Project case study

QR Event Photo Platform

Guest photo sharing for weddings and events.

A QR-based event photo platform where guests can upload photos from an event, event creators can manage private galleries, accept payments, protect events with passcodes, and download all guest photos as a zip file after the event.

Deployed · business name and public launch in progress
  • authentication
  • database design
  • file uploads
  • Stripe
  • Supabase
  • Vercel

The problem

At weddings and events, guests take great photos, but those photos usually stay trapped on individual phones or scattered across group chats and shared drives.

The idea

Create a simple event flow where guests scan a QR code or open a link, upload photos, and contribute to a private event gallery that the event creator can manage and download later.

What it does

  • QR/link-based guest upload flow
  • Event creator accounts
  • Event passcodes
  • Private gallery view
  • Guest and creator uploads
  • Stripe payments
  • Zip download of guest photos after the event
  • Deployed with Supabase and Vercel

Tech stack

  • Next.js
  • TypeScript
  • Tailwind
  • Supabase
  • Vercel
  • Stripe
  • Confirm exact stack before public launch

What I built

  • A QR/link upload flow for guests.
  • Creator-side event management for private galleries and protected event access.
  • Payment, upload, gallery, and zip download flows for a fuller event product.

What I learned

  • Starting with hand-coded HTML and CSS was useful at first.
  • Migrating to a modern web app stack showed why architecture decisions matter when a simple idea grows into a full-stack product.

Challenges

  • The feature set grew into auth, payments, uploads, galleries, and downloads.
  • Migrating from the first version was painful but useful for understanding app structure.

What I would improve next

  • Confirm the exact stack before public launch.
  • Lock the final business name before linking the public product.

Links

RepositoryPrivate while under active development.DemoPrivate while under active development.