Files
bsky-social-app/bskyweb
Claude 0820788d6f Emit og:image:alt / twitter:image:alt on bskyweb post pages
Post embeds already carry author-provided alt text in the appview
response (images, gallery items, and video), but bskyweb dropped it when
extracting og:image thumbnails, so link previews and crawlers never saw
an image description.

Extend extractPostMedia to return thumb+alt pairs and emit
og:image:alt / twitter:image:alt after each og:image / twitter:image
when the alt text is non-empty. Video posts use the video's alt text for
the poster thumbnail. JSON-LD callers flatten via a new imageURLs helper
so image[] strings stay byte-identical to og:image.

Related to the spirit of #8033 (alt text on link card images), but on
the bskyweb OpenGraph output side.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ki4kET2FKHBfNWR6jx6ooW
2026-07-22 19:44:21 +00:00
..
2024-04-13 12:20:06 -07:00
2024-04-13 12:20:06 -07:00
2024-04-13 12:20:06 -07:00
2024-04-13 12:20:06 -07:00
2026-05-18 09:51:04 -07:00
2024-04-13 12:20:06 -07:00
2024-04-13 12:20:06 -07:00

Build / Develop

SPA Bundle (monolithic static javascript file)

To build the SPA bundle (bundle.web.js), first get a JavaScript development environment set up. Either follow the top-level README, or something quick like:

# install nodejs
nvm install
nvm use
npm install --global pnpm

# setup tools and deps (in top level of this repo)
pnpm install --frozen-lockfile

# run pnpm web dev server, if you wanted
pnpm web

Then build and copy over the big 'ol bundle.web.js file:

# in the top level of this repo
pnpm build-web

Golang Daemon

Install golang. We generally develop against the current stable release of the language, as declared in go.mod.

In this directory (bskyweb/):

# re-build and run daemon
go run ./cmd/bskyweb serve

# build and output a binary
go build -o bskyweb ./cmd/bskyweb/

The easiest way to configure the daemon is to copy example.env to .env and fill in auth values there.