Heirlooms
A photo delivery platform for wedding and portrait photographers, designed as part of my work at Fox Weddings, built around one argument: the gallery isn’t the end of the job, it’s the thing the client keeps. I designed both sides of the handoff: the couple’s gallery and the studio’s workspace, and the system underneath them, coordinating directly with engineering to get it built the way it was designed.
Delivery is treated as the end of the job
The platforms wedding photographers use are mature and, on the photographer’s side, genuinely good. But almost all of them treat a gallery as a transaction that closes. There is an expiry date, an archive fee, and eventually an email that reads like a countdown. The link is storage the photographer rents on the client’s behalf.
Meanwhile the couple’s actual job was never “review 4,507 photographs”. It is to find the twenty they’ll use, send four to family without making anyone sign up, and still have all of them in ten years. Almost nothing in the category is designed for that.
So I took the opposite position and designed the whole product from it: a delivered gallery never expires, and everything else follows from having to make that work: for the couple, and for the business that pays for it.
When a delivered gallery expires: on every plan, by design rather than by tier
Design target: link opened to first photograph saved, on a phone, no account
Design target: camera card to delivered gallery without a second organising pass
The couple’s gallery and the studio’s workspace, designed as one system
Two people want different things from the same link
One person pays for this tool and opens it every week. The other opens it once, on a phone, in bed, and may never sign in at all. Designing a single gallery that serves both is the entire problem.
Where those two pulled in different directions, the couple won. The studio’s real customer is the couple, and the gallery is the last thing the studio ever hands them, so anything that made the gallery worse in order to make the workspace tidier lost the argument by default.
One gallery, two doors
The client side had to work with no account and no instructions, a link in a text message. That constraint removed a lot of options: no onboarding to explain anything, no settings to hide complexity in, and every important action reachable from the first screen.
The studio side is the opposite: a workspace someone signs into weekly, where depth is welcome and density is a feature. Same content underneath, two completely different structures over it.
Deciding the shape before the styling
Three questions had to be settled before anything was drawn properly: where scene navigation lives, whether favourites are a filter or a place, and how much chrome can sit on a photograph before it stops being a photograph.
The second one mattered most. As a filter, favourites are something you have to remember; as a place with its own address, they become somewhere you return to, which is what let them turn into a deliverable later.
4,507 photographs, and only twenty matter
Monica and Chris’s gallery is 4,507 photographs across four days and two ceremonies: a mehendi, an Indian ceremony and reception, and an Irish-American wedding day. A flat grid of that has no shape; every scroll looks like the last one. So the gallery arrives already divided into scenes, with counts, and the rows are justified rather than square-cropped so portrait and landscape frames keep their proportions. That last part sounds cosmetic and isn’t: square crops cut the composition out of every photograph in the set.
The interface itself is deliberately quiet: a warm paper ground, one ink, and a single brass accent that only ever means you did something here. Nothing in the chrome competes with the work it’s framing.
A favourite should be a brief, not a heart
Everywhere else, favouriting produces a list. The photographer receives it as a flat export and still has to work out what the couple meant. Meanwhile the couple has no idea whether they’ve picked too many, or too few, or what for.
So in Heirlooms favourites count against the real page limit of the album being designed (38 of 60) and carry a note in the couple’s own words. The same interaction now answers a question for both people: the couple learns when they’re done, and the studio receives something it can design from.
The part that has to survive a fourteen-hour day
Culling and editing is the photographer’s craft. Building the gallery is admin, and it happens at eleven at night, so the studio side is designed around removing the second pass entirely. Photographs are grouped into scenes as they upload, proposed from capture time and setting, and the photographer renames or merges rather than sorting from scratch.
The dashboard answers the question that actually gets asked between weddings: not “what have I uploaded” but “who hasn’t opened theirs”. Delivery status, client activity and waiting album selections are the primary content.
Permanence has to survive the business model too, so I framed it as a retention feature rather than a cost centre: a couple who can still reach their photographs in ten years is a couple who knows exactly who photographed them. That’s an argument, not a proof, and I’ve flagged it as one below.
Ten tokens and a rationed accent
Every colour in this product sits behind photographs, and wedding photographs are already warm, saturated and busy. So the palette is deliberately narrow: a paper ground, one ink, and a single brass accent. No second accent colour was allowed in, which meant status had to be carried by shape and placement rather than by inventing new hues.
Components were built as variants from the start, because the states are where a photo product breaks: a favourite that’s already been sent, an upload halfway through, a gallery with no cover chosen yet. Drawing only the happy path would have hidden all three.
The honest list
I’m not going to pretend everything here is settled. Three things still bug me, and they’re what I’d bring up first if I put this in front of a real photographer.
Automatic scene grouping is the part I’m least sure about. It works well for a wedding day, since the time and setting line up in a pretty predictable order. It falls apart for something looser, like a 90-minute family session in one park. If people end up correcting the groupings a lot, that’s really just the second pass coming back in a different shape, so the flow I’d actually want to test first is the correction, not the grouping logic itself.
I also haven’t worked out the cost side of “never expires.” It’s an easy line to put in a deck and a genuinely expensive promise to keep. I still think it’s the right call for retention, but I haven’t run the numbers, and at real volume this either pays for itself or it doesn’t.
And guest access is still unresolved. Letting family view and download without an account is obviously right for the couple, but it’s a real headache for a studio that makes money selling prints and doesn’t want people going around them. I don’t think that’s something you can bury in a settings toggle and call solved.