Eventflow
Turning the invisible into seen
A platform that delivers event photos directly to the people in them.



The problem
Take a group photo at a party. Not everyone knows each other: someone brought a plus-one, someone just met the group. Someone always says "make sure you send me that," and the photo stays buried in one camera roll, never shared. The friction is small, but it's enough that it almost never happens.
Eventflow asks one question: how do you remove that friction?
What I built
An organizer registers an event and gets a group phone number to pass around. Attendees join with a phone number, email and one profile photo. That photo is their fingerprint. From then on, anyone at the event texts photos to the number, and each attendee gets a text when they appear in someone's picture, with a link to their own private gallery.
How it works
Two queues sit at the center: one for outbound texts, one for heavy processing like face matching and gallery building. An event router decides which work goes where, so each kind can scale on its own.
The highlighted path follows a photo from a guest's text back to the guests in it.
The design weighed five things early and often: availability, consistency, durability, scalability and security. A few of the decisions:
- Availability over strict consistency. Someone uploading or opening a gallery should always get an answer, even if a new match shows up a moment later.
- Durability, because these are memories. Automated backups, recoverable match results, and galleries that can be rebuilt weeks later.
- Built for bursts. A 50-person party can send 600 photos in a few hours. At 8 to 12 faces each, that's 5,000 to 7,000 detections to match and route in near real time.
- Trust from day one. Early conversations kept asking whether someone could fake a profile, or whether galleries were public. Phone verification blocks fake profiles, galleries are private by default, and anyone can opt out of face routing.
What was hard
Matching faces in real party photos. Guests give one clean selfie, but party photos are dark, blurry and taken from the side. A missed match costs little; a wrong one sends someone a stranger's photo and breaks trust. So the matcher only sent a photo when it was confident.
What I learned
I listened, and I heard the pain clearly: "I never get the photos I'm in." What I didn't test fast enough was whether that pain was something people would seek out, or pay for. Not every pain is a need; some are just friction people tolerate.
So now I see an MVP differently. Every letter matters, but viable is the one to test first, before building, not after.
The full build story is in Building Eventflow.