Skip to content

feat: publication icon (profile image) for standard.site records#7

Merged
fmalcher merged 2 commits into
mainfrom
feat/standard-site-icon
Jul 22, 2026
Merged

feat: publication icon (profile image) for standard.site records#7
fmalcher merged 2 commits into
mainfrom
feat/standard-site-icon

Conversation

@fmalcher

Copy link
Copy Markdown
Member

Adds an optional publication icon (profile image) to the standard.site publisher.

Changes

  • atproto.ts: uploadBlob() (com.atproto.repo.uploadBlob) + BlobRef type.
  • publish.ts: new STANDARD_SITE_ICON config — an http(s) URL or local file path (png/jpg/webp). The publisher uploads it as a blob and sets it as the site.standard.publication icon. Because it's built into the publication record, it survives every re-publish (a one-off manual patch would be wiped on the next build).
  • Docs + .env.example updated.

Verification

  • npm run typecheck clean.
  • uploadBlob tested live against bsky.social with an app password → returns a valid blob ref (non-destructive; blob left unreferenced).

Consuming repos opt in by setting STANDARD_SITE_ICON (a square image ≥256×256).

fmalcher added 2 commits July 22, 2026 15:24
Add optional STANDARD_SITE_ICON config: the publisher uploads the image as a
blob (com.atproto.repo.uploadBlob) and sets it as the site.standard.publication
`icon`. Accepts an http(s) URL or a local file path (png/jpg/webp). The icon is
part of the publication record build, so it survives every re-publish.
- .env.example: STANDARD_SITE_ICON is a per-site placeholder, not a hardcoded URL
- publish.ts: a missing/broken icon logs a warning and continues instead of
  failing the whole publish (icons live in the website repo and are fetched by
  URL, which may lag a deploy)
@fmalcher
fmalcher merged commit 9993e89 into main Jul 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant