Project
Roulette

Guest Photo Wall

Everyone at the party uploads, and the wall fills up live.

IntermediateWeb appMedia10–20hAI-buildable 5/5no setupworth shipping

A shared photo wall for an event: guests upload from their phones and the grid updates for everyone watching. Client-side image resizing before upload is what keeps it usable on venue wifi, and it's a good introduction to canvas-based image processing.

UI
Logic
Useful

Hosting · Free forever

Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.

Deploy it and share a link.

Core features · 7

  • Join an event by link and upload photos
  • Images are resized in the browser before upload
  • The wall updates live as photos arrive
  • A masonry grid handles mixed aspect ratios
  • Clicking a photo opens a full-size lightbox with keyboard navigation
  • Upload progress shows per file, with retry on failure
  • A slideshow mode cycles for display on a screen

The interesting part

  • Resizing images on the client without blocking the main thread
  • Correcting orientation from EXIF data before resizing
  • Masonry layout that doesn't reflow chaotically as photos stream in

Once it works

  • Add reactions per photo
  • Add a moderation queue before photos appear
  • Add a download-all archive at the end

Suggested stack

reacttypescripttailwindcanvas-apisupabase

Track it