Skip to main content

Verdant DevCore Technologies

Engineering • Momento App • Product Development

How Event Memory Collection Actually Works: A QR Code, a Valet Ticket, and One Shared Album

July 31, 2026

Your wedding photographer took 800 photos. Your guests took 3,000 — and 2,900 of them are still sitting on phones you will never see. This is a story about how software fixes that, told from the inside out, with no computer science degree required.

Event guests scanning a QR code with their phones to upload photos to a shared album
One QR code on a table card. Every guest’s camera roll, in one place, by the end of the night.

Every event has the same bug. Not a bug in an app — a bug in how humans store memories. A hundred people point their cameras at the same three hours of your life, each one catching an angle nobody else did, and then all hundred of those cameras walk out of the building and go home.

The traditional fix is a WhatsApp group and a lot of nagging. The engineering fix is a shared album that guests can reach in one tap, with no app to install and no account to create. Below is exactly how that works — every step, in plain English, including the decisions that look boring on a diagram and matter enormously at 11pm on a dance floor with bad Wi-Fi.

The Five-Second Journey, from a Guest’s Thumb to a Shared Album

Click through the steps below. The left side is what a guest experiences. The right side is what the software is actually doing while they experience it.

Interactive

What happens when a guest scans your QR code

Step 1 — The scan

What the guest sees

They point their camera at a table card. A notification slides up. They tap it. That is the entire interaction — about four seconds, no typing.

What is actually happening

A QR code is not magic and it is not a file. It is a web address, drawn as squares. The phone’s camera reads the address and offers to open it. Nothing is installed, nothing is transmitted yet — this step is exactly as complicated as reading a signpost.

Step 2 — The page

What the guest sees

The couple’s album opens in their normal browser. There’s a name field they can skip, and a big button that opens their camera roll.

What is actually happening

The address contains the event’s unique slug, so the page loads that one album and no other. The camera-roll picker is a browser feature that already exists on every phone made in the last decade. Building an app to reproduce it, would add a download, an app-store trip, and a login — three chances for a guest to give up. The browser is the app.

Step 3 — The permission slip

What the guest sees

Nothing. This step is invisible and takes a fraction of a second.

What is actually happening

Before a single photo byte moves, the browser asks Momento App’s server one small question: may I upload this specific file? The server checks that the event exists, that its album is still open, that the album isn’t private to someone else, and that this phone hasn’t already fired off dozens of requests — then hands back a short-lived signed ticket. Think valet ticket, not luggage.

Step 4 — The upload

What the guest sees

A progress bar that keeps moving, even for a 40-second video, even on venue Wi-Fi.

What is actually happening

The photo goes straight from the phone to the storage service, using that signed ticket. It never passes through Momento App’s own servers. That single design choice is why big videos work at all — more on this below.

Step 5 — The album

What the guest sees

“Uploaded.” Their photos appear in the shared album, next to everyone else’s, in seconds.

What is actually happening

One last tiny message tells Momento App’s server “that upload landed, here’s where it lives, here’s who sent it.” Only now does a row appear in the database. If a guest picked twelve photos at once, they’re tagged with a shared batch ID so the album can show them as one moment rather than twelve strangers.

Why the QR Code is the Least Interesting Part (and the Hardest to Get Right)

Printed QR code table card and welcome sign for an event photo album
A QR code only has one job: be readable across a dim room by a phone held at an angle.

A QR code is a web link wearing a costume. The engineering problem isn't generating it — that's a solved, boring thing. The problem is that hosts want the sign to be beautiful, and beauty and scannability are frequently at war.

Momento App's print packs — welcome sign, table cards, reception poster — solve this by taking away exactly the right amount of freedom. A host picks two colours: a background and an ink. The other three tones in the design (secondary text, the little botanical sprigs, the hairline border) are calculated automatically by blending those two. It's the difference between handing someone a paint set and handing them a palette that already works.

And one colour is quietly non-negotiable: the QR code's own squares are always forced dark enough to scan against their white card, no matter how pale and dreamy the rest of the design gets. That is a deliberate line in the code, and it exists because a gorgeous sign that fails to scan is worse than an ugly one that works.

The signs themselves are drawn as vector graphics in the browser, then exported to a high-resolution image for screens or a print-sized PDF for a printer. The PDF machinery is only loaded when a host actually opens the print pack — so guests, who will never need it, never download it. If you want to see the finished thing rather than the plumbing, the QR code wedding photo sharing page walks through the printable sign templates, and event QR code photo upload covers the same for conferences, galas and parties.

The Valet Ticket: the One Design Decision that Makes Everything Else Possible

Here's the part engineers get excited about, explained without jargon.

The obvious way to build photo uploads is: phone sends photo to your server, your server sends photo to storage. Simple, and it works fine in testing, where your test photo is a 200-kilobyte cat picture.

It falls apart at a real wedding. Modern app servers run in small, temporary slices of a computer that are cheap and fast precisely because they're small — and they typically refuse to accept a single request larger than a few megabytes. One 4K video of the first dance is a hundred times that. Every guest's phone would be trying to shove a wardrobe through a letterbox.

Under the hood

Three messages, and only one of them is heavy

1. Ask permission Browser to Momento App: "a 12 MB video, from this event." A few hundred bytes of text. Momento App validates and returns a signed ticket that expires shortly.
2. Hand over the bytesBrowser to storage, directly, ticket attached. This is the entire 12 MB — and it never touches Momento App's servers.
3. Confirm it landedBrowser to Momento App: "done, it's here, guest name Amara, tagged #firstdance." Another few hundred bytes. Now it's in the album.

The heavy step is the one Momento App deliberately stays out of. The two steps it does handle are small enough to stay fast even when two hundred phones fire at once.

The signed ticket is what makes this safe. It isn't a general key to the storage account — it's stamped for one folder, it expires, and Momento App only issues one after checking that the event is real, the album is currently open for uploads, the host's account is in good standing, and the file is a genuine photo or video type under the 50 MB-per-file ceiling. A guest can't talk to storage without a ticket, and a ticket can't be reused as a skeleton key.

There's a small kindness buried in that same step, too. iPhones save photos in a format called HEIC that Windows laptops and older browsers often refuse to open. When Momento App spots one, the ticket it issues instructs storage to convert the photo to a universal JPEG on arrival. The guest does nothing. The grandmother on a 2016 desktop just... sees the photo.

Once the bytes land, the third message is what turns a file into a memory. It records who uploaded it (if they typed a name — it's optional, and remembered on their phone so they only type it once), any hashtags they added, and a shared batch ID when someone selected twelve photos in one go. That batch ID is why an album can show "Amara added 12 photos" as a single moment instead of twelve disconnected tiles. It is a small piece of bookkeeping that changes how the finished shared wedding album reads — closer to a story, further from a dump. The same assembly runs behind every event type in the wedding photo sharing app.

How Much Data is Your Event, Actually?

Move the sliders. The numbers update as you go — this is the same arithmetic that decides whether an upload system needs to be clever or can afford to be simple.

Interactive

Event upload calculator

1,440files landing in one album
4.8 GBtotal memories collected
2.5 MBactually carried by the app servers
1 min 5 sfor one guest's batch on slow venue Wi-Fi

"Carried by the app servers" is just the two little text messages per file. The photos themselves go phone-to-storage. That gap — gigabytes versus megabytes — is the whole argument for the valet-ticket design.

Two things usually surprise people here. The first is how quickly an ordinary event crosses into multiple gigabytes — a 120-guest wedding where everyone contributes a dozen shots is already bigger than most people's entire phone backup. The second is how little of that the app itself has to touch. Doing the arithmetic before writing the code is what turns "the uploads keep failing" into a problem that never existed. If you want the guest-facing version of this story, it's on the wedding guest photo upload page.

Privacy You Can Actually Feel: Three Doors, One Album

"Private" is a word marketing pages throw around. In a codebase it has to mean something specific, and here it means a host picks one of three doors for their album.

Interactive

Pick a door and see what it does

Door 1 — Anyone with the link

The guest experience

Scan, upload, done. No password, no friction — the default, because the QR code is only on the tables at your event.

What "private" means here

The album has no public listing and no browsable directory. Its address contains a long random suffix that can't be guessed, and search engines are never handed it. It is private the way an unlisted phone number is private.

Door 2 — Link plus password

The guest experience

One extra screen: type the word printed on the table card. Then they're in, and they stay in.

What "private" means here

The password is never stored as text anyone could read — not by staff, not in a database dump. It's stored as a one-way scramble, and guesses are checked against the scramble. Repeated attempts from the same place get throttled, because a password you can guess a million times isn't a password.

Door 3 — Named guests only

The guest experience

They enter their email, receive a six-digit code, and type it in. Familiar, because their bank does the same thing.

What "private" means here

Only addresses on the host's list get a code at all. Each code allows five wrong guesses and then dies — and unlike the general traffic throttling, that five-attempt limit never relaxes, even if other parts of the system are having a bad day. Some limits are there to keep the system tidy. This one is a lock.

That last distinction is worth dwelling on, because it's the kind of judgement that separates a system that merely looks secure from one that is. Momento App uses traffic limits in several places — how many upload tickets one phone can request, how many emails one address can trigger. If the service that tracks those counters ever becomes unreachable, the code deliberately lets requests through rather than blocking everyone. Those limits exist to discourage abuse, and a temporary outage in the counter shouldn't take down every wedding on the platform.

The five-attempt cap on a verification code is the opposite. It is not tidiness, it's the door itself, and it fails closed — no excuses, no fallbacks. Knowing which of your safety measures is a bouncer and which is a deadbolt is most of security engineering.

A private album that anyone holding its ID could still upload into would be a strange kind of private. So the permission check runs on uploads too, not just on viewing.

Finding Yourself In 900 Photos

Conference attendees photographing a session, later searching a shared album for their own photos
At 900 photos, scrolling stops being a feature.

A shared album has a scale problem that a private camera roll doesn't: everyone contributes, so nobody can find themselves. The fix is to let a guest take a selfie and get back every photo they appear in.

This is the feature where the implementation details are the ethics, so here they are plainly. The selfie a guest takes to search with is never saved and never added to anything — it exists for the length of one request and is written nowhere. The face data extracted from uploaded event photos is kept in a separate service, in a list that belongs to one single event, so a face recognised at a Lagos wedding cannot be matched against a conference in Berlin. Deleting the event deletes the whole list in one stroke, rather than hunting for stray fragments. And Momento App's own database never stores a face — only a pointer saying "photo 412 contains a face", which is a fact about a photo, not an identity.

Searching is also rate-limited more aggressively than anything else in the product, for a reason worth stating out loud: it is the one place where a stranger could otherwise sit and test faces against a guest list. Building the feature meant building the thing that stops it being misused.

The Recap Video, and An Honest Note About "AI"

At the end of an event, Momento App can assemble a 90-to-120-second highlight reel. It would be easy to slap "AI-generated" on that and move on. What actually happens is more modest and, frankly, more trustworthy: nothing is invented. The system ranks the photos an event already has, using signals it already knows — which ones guests viewed most, which ones contain several faces (a decent proxy for "this is the group shot"), how many different hashtags are represented so the reel isn't twelve versions of the cake, and when things were uploaded so the story runs roughly in order.

It picks around sixteen moments, decides how long each should hold on screen to hit the target length, and hands that running order to a media service that stitches the actual video file. No generative model touches your wedding. The recap is curation, not fabrication — and for a video of your real day, that's the correct choice.

How This Compares to What You're Probably Doing Now

What you needWhatsApp groupShared cloud folderMomento App album
Guest has to install or sign inAlready installed, but not everyone is in the groupUsually needs an accountNothing — it opens in the browser
Photo qualityHeavily compressedOriginalOriginal, with iPhone HEIC converted for everyone else
Everything in one placeBuried between messagesYes, if people remember the linkYes — one album per event
Works for 200 guestsGroup chat chaosPermissions become a choreDesigned for it
Find photos of yourselfScroll and hopeScroll and hopeSelfie search
Printable signage for the venueNoNoWelcome sign, table cards, poster
Who can see itWhoever is in the groupWhoever has the link, foreverLink, password, or a named guest list

Find the Version of This Built for Your Event

The plumbing above is the same everywhere. What changes is the wording on the sign, the shape of the album, and what guests are actually doing when they pull their phones out. Each page below covers one of those in detail.

Frequently asked questions

Do my guests need to download an app?

No. The album opens in whatever browser is already on their phone. This is a deliberate engineering decision, not a shortcut: every extra step between scanning a code and uploading a photo loses guests, and an app-store trip plus a sign-up loses a lot of them. The browser already has a camera-roll picker and a file uploader built in.

Are the photos compressed like they are in WhatsApp?

No. Files travel from the phone to storage in their original quality, up to 50 MB per file. The only conversion that happens is turning Apple's HEIC format into a universal JPEG, so that guests on Windows machines and older browsers can actually open what the iPhone users uploaded.

Can videos be uploaded, or only photos?

Both. Common video formats including MP4 and the format iPhones record in are supported, alongside JPEG, PNG, WebP, HEIC, AVIF, GIF and more. The 50 MB per-file ceiling means very long 4K clips may need trimming first; a typical 30-to-60-second phone clip fits comfortably.

Who can see my event album?

Whoever you decide. Albums are private by default and reachable only through the link or QR code you share — there's no public directory to browse. You can add a password, or restrict access to a specific list of email addresses, where each guest confirms with a six-digit code sent to them.

What happens to the selfie I use to find my photos?

It is used for that one search and then it's gone. It is never stored, never added to any collection, and never used to identify you anywhere else. Face data from event photos is kept per-event, so it can never be matched across different events, and deleting an event removes it entirely.

What if the venue Wi-Fi is terrible?

Uploads go one file at a time with a live progress bar, so a weak connection makes things slower rather than breaking them, and a failure affects one photo rather than the whole batch. Because photos go directly from the phone to storage rather than through an intermediate server, there's one fewer hop that can time out.


The short version

A QR code is a link. The browser is the app. The photos take the direct road to storage while the servers handle only the paperwork. Privacy is three specific doors rather than one vague adjective. And the highlight reel is honest curation of your real photos rather than something a machine dreamed up.

None of that is visible to a guest at your reception, and that's the point. Good engineering, at an event, looks like nothing happening at all — just a table card, a scan, and a shared album that quietly fills up with the night you'd otherwise have only half of.

Latest Post

Image of a bakery shop
Digital Transformation • Technology
API Integration • Engineering • Momento App
The Human Side of Digital Transformation
Digital Transformation • Technology