MediaIndo-UK6 months

Event Photo Face-Match App - Indo-UK

How a selfie-to-photos web app helped guests at 10,000+ events find their own photos in seconds, with self-hosted face recognition and privacy built in.

Indo-UK event photography and media company (name withheld)November 2026Consulting CTO
A wedding guest taking a selfie to find their own photos in an event gallery

Overview

After a wedding, conference or college fest, guests had to scroll through hundreds of photos to find the few they appear in. As consulting CTO for an Indo-UK event-media company, I designed a web app where guests take one selfie and instantly get every photo they appear in, with no app and no sign-in.

Technologies Used

Ollama
Self-hosted face-recognition model, run offline
MongoDB Atlas Vector Search
Face embeddings and similarity search
MongoDB
Events, photo records and match results
Node.js
Events, uploads and search API
React.js
Organiser and guest web app
AWS S3
Mid-resolution photo storage

The Challenge

After a wedding, conference or college fest, guests had to scroll through hundreds or thousands of photos to find the few they appear in.

  • Galleries are huge. A single big Indian wedding can produce thousands of photos across several days and functions.
  • Guests give up. Most only want their own photos, and few will scroll the full gallery to find them.
  • Organisers carry the load. Photographers and planners field requests like "please send my photos" for weeks after the event.
  • Sharing is messy. Photos travel through generic drive links and messaging groups, with no control over who sees what.

The client wanted guests to find their own photos in seconds, without installing an app or creating an account.

A guest overwhelmed by a gallery of thousands of event photos

My Role

As consulting CTO, I owned the technical design and guided a team of 5+ engineers from idea to launch over 6 months.

  • Architecture: the React web app, Node.js backend, MongoDB data model, the offline face-recognition pipeline and vector search.
  • Face-matching design: how event photos are indexed, how a guest's selfie is matched, and how results stay limited to one event.
  • Privacy: consent, how face data is stored, who can see which photos, and when data is deleted.
  • Delivery oversight: guiding the development team, reviewing code and planning the launch.

Architecture

The app has two simple journeys, one for the organiser and one for the guest, joined by face embeddings that belong to a single event.

Face-match flow: organiser uploads photos, a guest's selfie is matched within one event
  1. Create the event

    The organiser creates an event in the React web app and gets a unique link to share with guests.

    Illustrative mockup of an organiser dashboard uploading event photos and sharing a guest link
  2. Upload and index

    Event photos are converted to mid resolution to save storage, then uploaded to AWS S3. A face-recognition model, served offline with Ollama on our own servers, detects each face and turns it into a face embedding: a list of numbers that describes the face. The embeddings are stored in MongoDB Atlas Vector Search, tagged with the event.

  3. Guest opens the link

    Guests open the shared link on their phone, with no app to install and no sign-in.

  4. One selfie

    After giving consent on screen, the guest takes a selfie. The same model turns it into an embedding, and a vector search finds the closest matching faces within that event only.

  5. Instant results

    The guest sees every photo they appear in, ready to download or share.

    Illustrative mockup of a guest's phone showing only the event photos they appear in after a selfie

Because the expensive work (creating face embeddings) happens once per photo at upload, each guest search stays fast and cheap.

Privacy by Design

A face is biometric data, so the app was built to match guests within one event and nothing more.

  • Matching stays inside the event. A guest's selfie is compared only with that event's photos, never across events or clients. Recognition runs offline on our own servers, so photos and face data are never sent to a third-party AI service.
  • The selfie is the key. Guests don't sign in: their own face is what unlocks their photos. If a guest's face isn't in the event's photos, the app shows nothing, so nobody can browse a gallery they don't appear in. Guests give their consent on screen before the selfie is taken.
  • Access by link. Each event has its own unique link, shared by the organiser.
  • Clear retention. All selfies and galleries are deleted after about 3 months, or at the end of the organiser's plan.
A consent screen before a guest's selfie is used to find event photos

The same feature is regulated almost everywhere, so these choices carry across markets:

RegionHow face data is treatedWhat it means for the design
Europe and UKGDPR: biometric data for identification is special-category data.Explicit consent before the selfie; EU or UK hosting; deletion on request.
Middle EastUAE and Saudi PDPL: biometric data is sensitive data.Clear consent and a stated purpose; check data-residency rules in Saudi Arabia.
AfricaPOPIA: biometric information is special personal information.Consent and a lawful purpose; strict limits on reuse.
IndiaDPDP Act: personal data processed with consent for a stated purpose.Consent screen, purpose shown up front, deletion when the purpose ends.
South East AsiaSingapore, Thailand, Vietnam, Malaysia and others protect biometric data.Consent, local hosting where required, short retention.

Trade-offs We Made

DecisionWhat we gainedWhat we gave up
A self-hosted model served with Ollama, running offlineNo per-image or per-search fees; face data never leaves our infrastructure.More engineering to set up, tune accuracy and scale processing.
Face embeddings in MongoDB Atlas Vector SearchFast similarity search next to the event data already in MongoDB.Vector-index tuning as galleries grow.
A web link and a selfie, with no app and no sign-inGuests find photos in seconds, on any phone, and only ever see photos they appear in.No app-store presence or push notifications.
Matching one event at a timeSimpler privacy story and faster searches.No "all my photos across events" view for repeat guests.
Mid-resolution photo copiesLower storage costs across millions of images.Guests get mid-resolution photos rather than full-size originals.

What we deliberately did not do: send guests' photos and selfies to a third-party face-recognition API. Running it ourselves kept costs flat as galleries grew and kept face data under our control.

Results & Impact

Across 10,000+ events, guests found their own photos by taking one selfie, instead of scrolling galleries of 500 to 800 photos.

Events hosted
10K+
Each with 500 to 800 photos
Photos processed
5M+
Calculated from 10K+ events at 500 to 800 photos each
Guest selfie searches
1M+
Calculated from 100 to 200+ selfies per event
Data retention
~3 months
Or as per the organiser's plan

Business Impact

10,000+ events hosted on the platform
5M+ event photos indexed with self-hosted face recognition
1M+ guest selfies matched within their own event
No app and no sign-in: the selfie is the key
Photos and face data never sent to a third-party AI service
Selfies and galleries deleted automatically after about 3 months
Fewer "please send my photos" requests for organisers

Where This Pattern Applies

The same selfie-to-photos flow works for any event with a large crowd and a professional photographer, in any market:

  • Weddings and family functions, from multi-day Indian weddings to Gulf and African celebrations.
  • Conferences and trade shows, such as tech and startup events in Dubai, Lisbon or Singapore.
  • Marathons, sports days and school or college events.
  • Corporate offsites, product launches and award nights.

Key Takeaways

A self-hosted face model with vector search can beat per-image cloud fees, and keeps face data on your own infrastructure.
Keep matching inside one event, and treat every selfie as biometric data with consent and deletion built in.
Let guests use a link and a selfie, with no app to install and no sign-in.
Do the heavy work once at upload, so every guest search stays fast and cheap.
Mid-resolution copies and automatic deletion keep storage costs and data risk down.

Planning an AI Feature That Handles Personal Data?

With 26+ years of building platforms, I help founders design AI features that handle faces, voices or other personal data to be useful, affordable and compliant in every market they serve.