DEV Community

Cover image for Building a Zero-Download Digital Disposable Camera \
Harshit Kumar
Harshit Kumar

Posted on

Building a Zero-Download Digital Disposable Camera \

Collecting candid photos and videos from guests at weddings, parties, and offsites has always been a painful problem:

  1. Physical disposable cameras cost $25+ to purchase, another $20 to develop, suffer from awful low-light flash, and take 3 weeks to see results.
  2. 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.
  3. 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)