Every company builds this eventually. Name, role, team, photo. It takes an afternoon and then spends 3 years accumulating edge cases that were never scoped.
The photo column is where most of them live. Here is the schema I wish I had started with.
Beyond photo_url
photo_original_key -- the uncropped source, never served directly
photo_variants -- generated crops, regenerable, safe to delete
photo_consent_at -- when they agreed to it being public
photo_consent_scope -- internal only | public site | marketing
photo_taken_at -- not uploaded_at, they differ by years
photo_source -- studio session id, self-upload, generated
photo_opt_out -- boolean, with a placeholder that is not a broken image
Four of those exist because of situations rather than architecture.
photo_consent_scope. Someone agrees to appear on the internal directory and not on the public about page. If you have one boolean you will get this wrong in one direction or the other, and the wrong direction is a person discovering their face on a marketing site.
photo_opt_out. There are always some. Camera-shy, religious objections, a period of visible illness, an ex-partner they are avoiding. Any system that cannot express "no" produces a grid with holes in it, which looks worse than mixed photos and is worse for the person.
Design the placeholder properly. Initials on a coloured background is fine. A grey silhouette reads as "this person is missing", which is exactly the attention you were trying to avoid drawing.
photo_taken_at. Upload date lies. People upload a photo from 2019 in 2024, and when you later want to prompt for refreshes you need the real one. Ask, and accept that they might not know.
photo_source. Matters more than it looks. A grid built from a mix of studio sessions and self-uploads will never look consistent, and knowing which is which is the first step to fixing it.
The leaver problem
When someone leaves, what happens to their face?
The three answers I have seen are keep it forever, delete it immediately, and keep it on historical content but remove it from current pages. All three are defensible; not deciding is not. And whichever you choose, someone will eventually email asking for removal, so build the path before you need it.
The related question is who owns the file. Photographers frequently license rather than transfer, which means your rights may be narrower than you assume. Get the terms in writing.
Consistency is an organisational problem
The reason team grids look mismatched is not technical. It is that photographing 40 people means 40 calendars, a room, and at least 6 people who reschedule twice. That is why the about page still has photos from 2019.
The professions where this gets scrutinised hardest are the ones where the reader is deciding whether to trust a person rather than a company. Academics have a split audience: grant committees want authority, prospective students want approachability, and one photo usually serves the first. Therapists have the opposite brief entirely, because the reader has already assumed competence and is deciding whether they can say something difficult to this face.
Author photos have a technical constraint most people miss: they get printed small and in greyscale, so colour-dependent separation vanishes. And the extra layer where senior women get the authority-versus-warmth dial judged more harshly in both directions is real and worth reading about if you are advising anyone on this. The conventions for men are narrower and less contested, which is its own kind of information.
The migration you will run
At some point you will regenerate every variant because the design changed. If you kept the originals, that is a job. If you only kept the crops, it is a re-shoot. Keep the originals.
More from this series
- Zoom, Teams, Meet and Slack all crop your avatar differently. Here are the numbers.
- How to test whether a generated portrait still looks like the person, without fooling yourself
- Evaluating an image tool for 200 people is a different test from evaluating it for 1
- Tu foto de LinkedIn se decide a 48 píxeles, y tú llevas semanas mirándola a 400
On BetterPic
Top comments (0)