Public Access
Both card renderers emitted an <img> only for a URL, so a record whose Image is an inline data:image/... URI (what the upload step stores today) fell through to the monogram. The avatar check now allowlists exactly two schemes — https:// and data:image/ — in build-directory.py and in the page script; anything else (empty, junk like "gineoirn", another scheme) still falls back to the monogram, and the value never reaches src unchecked. The lede copy is corrected to match: a photo shows where the freelancer gave a link OR uploaded an image.