Case study 01 / 04 · Event SaaS

← All work

Snapvyn

The Snapvyn home page: the headline “The photos you didn't know were taken.” beside an event album on a phone, Polaroid guest captures and a QR code.

Moments, becoming shared.

Event photo and video sharing through a QR code, with browser uploads, live projector walls and a disposable camera mode. No app download needed.

Role
Founder & sole engineer: architecture, full-stack development and real-time systems
Year
2026

01Overview

Overview

Built with

  • Next.js
  • TypeScript
  • NestJS / Fastify
  • PostgreSQL & Drizzle
  • Redis & BullMQ
  • Socket.IO
  • Cloudflare R2
  • Payments.lk & Stripe

Filed under

  • Own product
  • SaaS
  • Real-time
  • AI

02The challenge

The challenge

Wedding and event guests resist installing an app or registering an account for a single evening. Traditional solutions forced downloads or app-store signups, stranding hundreds of candid photos and videos on individual camera rolls that the host never got to see.

03The thinking

Roads taken, and the ones that weren’t.

  1. 01

    Took

    A QR scan opening directly into a mobile web camera and uploader.

    Instead of

    A native iOS/Android app or an account sign-in gate.

    Because

    A QR scan lets guests contribute photos without installing an app or creating an account for a single event.

  2. 02

    Took

    WebSocket real-time Live Photo Wall for venue projectors.

    Instead of

    Static post-event downloadable albums.

    Because

    The host can display approved guest photos during the event, rather than waiting until it is over to share an album.

  3. 03

    Took

    Service worker client-side queue with resumable background uploads.

    Instead of

    Standard multipart HTTP form POSTs.

    Because

    Venue connections can drop. A local IndexedDB queue keeps pending captures available for upload when connectivity returns.

  4. 04

    Took

    Dual checkout supporting Payments.lk (LankaQR) and Stripe.

    Instead of

    Stripe-only international billing.

    Because

    Local hosts can pay through domestic banking apps and LankaQR, while Stripe supports international card payments.

04The engineering

The system, taken apart.

Latency-sensitive interactions happen immediately in the browser; heavy video transcoding, AI highlight generation, and image scaling run asynchronously on background BullMQ workers behind Cloudflare R2 and PostgreSQL.

  1. 01

    Guest

    • QR scan & web camera
    • Disposable camera mode
    • Service worker offline queue
  2. 02

    Gateway

    • Caddy reverse proxy
    • NestJS / Fastify API
    • Better Auth & tenancy
  3. 03

    Async & AI

    • Socket.IO live wall feed
    • BullMQ background workers
    • AI curation & highlights
  4. 04

    Storage

    • PostgreSQL & Drizzle
    • Cloudflare R2 signed URLs
    • Payments.lk & Stripe

The loopLive Wall & Gallery: real-time WebSocket broadcast streams approved guest captures straight to venue projectors, screens, and shared albums while the event is underway

What was built

  1. 01

    Reduced guest onboarding to a single QR scan that opens an in-browser camera and gallery with zero account creation or app installation.

  2. 02

    Engineered a real-time Live Photo Wall display that streams guest captures onto venue projectors and TV screens over WebSockets with host moderation queues and reveal delays.

  3. 03

    Built vintage Disposable Camera mode simulating analog film grain with delayed photo reveals after event completion.

  4. 04

    Implemented client-side offline background queues via service workers, ensuring captures taken in crowded reception venues upload smoothly as cellular connectivity recovers.

  5. 05

    Built an automated AI highlight generator, duplicate detector, and story curation pipeline to compile event reels without manual editing.

  6. 06

    Architected dual localized payment processing: integrated Payments.lk (LankaQR & local cards) alongside Stripe for global event pass billing.

05The experience

What people actually see.

Captured from the live product. Nothing here is a mock-up.

06What shipped

What shipped

  • Zero-install event photo sharing with instant QR camera onboarding.
  • Real-time WebSocket Live Photo Wall for venue projectors and screens.
  • Multi-currency monetization supporting LankaQR, local cards, and Stripe.

Next case study

Menuvyn

One tap, the whole restaurant moves.

Continue
The Menuvyn home page: the headline “Your menu, reborn as an app” beside plated avocado toast and an interactive diner menu priced in LKR.

Analytics

May I use Google Analytics to see which pages and interactions people use? It loads only if you accept. Form contents are never included. You can change this in the footer.