Collecting candid photos and videos from guests at weddings, parties, and offsites has always been a painful problem:
- Physical disposable cameras cost $25+ to purchase, another $20 to develop, suffer from awful low-light flash, and take 3 weeks to see results.
- Traditional photo-sharing apps suffer from a ~75% drop-off because wedding guests refuse to install third-party mobile apps from the App Store during an event.
- Shared Google Drive / iCloud links have awkward permission gates and zero party gamification.
To fix this, I built Momento — an instant, browser-based digital disposable camera and live event gallery that works with zero app downloads and zero account creation.
Here is how the architecture and technical pipeline works under the hood.
🏗️ The Architecture Overview
🎨 1. Client-Side Filter Baking (Why CSS Filters Weren't Enough)
To give photos an authentic 90s disposable analog look (Dispo, Retro, Clean, Warm, B&W, Moody), we couldn't just apply CSS preview filters because saving the raw image would lose the aesthetic.
Instead, we built a client-side pixel manipulation pipeline using HTML5 Canvas:
- When the shutter is pressed, the camera stream captures the uncompressed frame.
- The frame is drawn onto an offscreen canvas.
- Color transformation matrices and film grain overlays are baked directly into the pixel array in under 80ms.
- The resulting blob is compressed client-side to preserve battery and mobile bandwidth.
📶 2. Offline-First Durable Upload Queue
Event venues (rustic barns, wineries, mountain resorts) often have terrible Wi-Fi and congested cellular networks.
If an upload fails on a standard web app, the photo is lost. In Momento:
- Captured photos and 60-second video clips are instantly written to local IndexedDB storage.
- A background sync worker detects online/offline events.
- Media retries exponentially until the signed upload to Cloudflare R2 confirms completion.
- Guests can keep snapping photos even in airplane mode.
📺 3. Real-Time Live TV Projector Wall & AI Curation
Beyond capturing photos, we built interactive experiences:
- Live TV Photo Wall: Connect any laptop or Apple TV to a venue projector. Photos appear live in real time with smooth Ken Burns pan-and-zoom animations.
- AI Morning-After Recap: Post-event, the host receives an auto-curated 30s/60s highlight recap video and automated guest superlatives (Best Dressed, Night Owl).
- Find Me (Face Indexing): Guests take a quick selfie to automatically index and retrieve every photo they appear in across thousands of gallery uploads.
🧪 Try the Live Interactive Demo
You can test the camera pipeline, vintage filters, and live gallery directly in your mobile or desktop browser:
👉 Live Demo at momento.camera/join?demo=1
Tech Stack Summary:
- Framework: Next.js 16 (App Router, Turbopack)
- Styling: Tailwind CSS
- Database & Auth: Supabase (PostgreSQL)
- Object Storage: Cloudflare R2 (Signed buckets)
- Mobile Engine: Expo / React Native PWA
Would love to hear your feedback on the UX, camera pipeline, and tech stack in the comments below!
Top comments (0)