Grouped by who's actually using it.
A guest opens this once, on a phone, mid-party. A host comes back to it for weeks. The feature list looks different depending on which one you are — so here it is, split that way.
For guests
No app, no account
A phone browser is enough. Nothing to install, nothing to sign into, nothing to remember afterwards.
Six-digit numeric code
Digits only, so typing it brings up a phone's number pad instead of the full keyboard. Or just scan the QR code.
The gallery, not a queue
Photos land in a shared gallery guests can actually browse — the destination, not a waiting room for someone else's app.
Video, alongside photos
Guests add clips the same way they add photos. No separate flow to learn.
Who's here
A roster strip of guests who've joined, so a gallery with no photos yet still feels alive.
Works on old phones, in bad light, after a drink
The actual design constraint. Big tap targets, plain words, no gestures that are the only way to do something.
For hosts
Disposable camera mode
Hide photos until you reveal them — a batch at a time, or all at once, whenever fits the night.
Sub-galleries
Split one event into named sections: the speeches, the dancefloor, the morning after brunch.
Moderation that's findable under pressure
Block a guest, remove a photo, or hide the whole gallery, from levers pinned to the top of the admin view.
A slideshow for the venue
Point a projector or a spare TV at /tv and let approved photos play all night, pinned to a dark theme.
Per-event themes
Colour, accent, heading font and hero image — eleven presets to start from, or build your own. Contrast is checked, not assumed.
Custom domain
Run the event on your own domain — photos.yourname.com — instead of a shared one.
EXIF and GPS preserved on originals
Full-resolution originals keep their metadata, including location, for your own later use. Every derivative guests see is stripped clean.
Photos kept a year, by default
Long enough to actually get around to the album. Extending it is a super-admin choice, not a hidden default.