When a URL points at a file, replacing the photograph means uploading a new file, getting a new URL, and editing every page that referenced the old one. Miss one and it shows the old image, or a broken one. Static site generators, CMS templates, email footers and third-party embeds all hold copies of that URL.
It also couples two unrelated decisions: what to show, and how to encode it. Changing from JPEG to WebP, or raising the output width for a new layout, should not require touching HTML.
A Photo is an identity
In I Love That Photo a Photo is a publishing identity with a stable id, for example ph_001. You add candidate photographs to it. A pipeline produces outputs from a candidate. You choose which output is live for each composition (main, card). The URL encodes only the identity, the composition and the rendition:
Replace the live output and every page that embeds the URL shows the new photograph on the next request. Roll back and the previous output returns. Withdraw the Photo and the URL answers 410 Gone, which tells browsers and crawlers the image is deliberately unavailable.
What stays the same and what changes
- Same URL when you replace the photograph, change the watermark, or raise the output quality.
- New URL only when you add a new composition or rendition, because that is a new thing to embed.
- No URL ever answers with a photograph you did not approve for publication.
What this does not do
Changing what a URL delivers cannot change captions or alt text already written into another site’s HTML. The workbench shows the alt text you recorded so you can update it where you embedded the image.