Integrating Standard Site Into Bluesky #4978
Replies: 6 comments 12 replies
|
Sequoia - and perhaps others - currently creates a ref from a Bsky post to the site.standard.document. Should it stop and only do associatedRefs? Or do both for older implementations of the Bsky AppView? |
|
This is awesome. I'm just wrapping up some changes to my blog; so I'll make sure I'm set for this. I'm wondering if we'll one day be able to have a feed in the bsky app that renders these embeds for documents from publications in the bsky pds site.standard.graph.subscription for the user, potentially even bringing that into the Following feed. In the meantime, what if in this enhanced post embed we had a Subscribe button to add the publication to site.standard.graph.subscription? or even just a visual indication if you are subscribed. |
|
In the lexicon we have associatedRefs and associatedProfiles In my experimenting I was a little surprised to see, with your test records, that associatedProfiles had duplicated information. Is the intent here that there must be an associated profile for each associated refs, and that the order matters? e.g. associatedRefs[0] has the associated profile of associatedProfiles[0]? |
|
This is working for at://did:plc:i2fgba5nignuw4nccml33wjp/site.standard.document/3mm6alawett2r / https://smart-knowledge-systems.com/blog/the-case-for-at-you, but the estimated reading time is 1m. This is because I added my full post as markdown in .content (with at.markpub.text) and truncated .textContent, I suppose. I guess I should include the full plain text in textContent? |
|
If we update the embed and the CID changes, will Bluesky re-render? Wondering if https://tangled.org/stevedylan.dev/sequoia/issues/38 is worth doing. |
|
I'm assuming the Bluesky crawler doesn't execute javascript so the link tags must be injected server side, correct? |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The Bluesky team is working on integrating
site.standard.*lexicons. For people using the Bluesky app, this means that when they come across a link published with a Standard.site record, they’ll get an enhanced preview. For developers and publishers building on atproto, we hope this provides a bit more encouragement to use this exciting community-built feature in your own sites.The work will be broken up into phases. The first, to be released in the next few days, will detect Standard Site records present on shared URLs, and use the data contained within those records to display enhanced link cards within the Bluesky app.
Future phases will integrate Standard Site more deeply, and further showcase the incredible ecosystem growing from this community-led effort.
Enhanced post embeds
Bluesky has begun ingesting all
site.standard.*records into our database, and initial appview support landed here in #4915. In that PR, you’ll see that we’ve added a new field to theapp.bsky.embed.externalpost embed record:associatedRefs. These refs arecom.atproto.repo.strongRefs that point to thesite.standard.documentand thesite.standard.publicationrecords, if available.When hydrating feeds, we’ll use this
associatedRefsarray to fetch the raw Standard Site records from our database. The data contained in these records will be used to construct the new fields onapp.bsky.embed.external#viewExternal, which also landed in #4915.Publishers and other Atmosphere clients that wish to create Bluesky posts for their users with support for the enhanced Standard Site embed should write external embeds that look like this example from the atproto.com blog:
Referencing Standard Site records on webpages
Following the pattern established by the Standard Site Verification docs, articles should include a
<link />meta tag that references thesite.standard.documentURI of that article. Here’s an example from the same atproto.com blog post:Additionally, the Bluesky team has met with the Standard Site core community team to discuss the addition of a
site.standard.publicationURI reference on article pages as well, and they were amenable. This helps us resolve the data more performantly, but we will still support auto-resolution of publications for backwards compatibility.However, in order to support linking to a publication directly (not a single article), we require platforms to add a link
site.standard.publicationlink tag on these pages as well. This is not currently covered by the Standard Site docs.In summary, publishers and platforms that wish for their links to appear using the enhanced link card in the Bluesky app should embed their article pages with link tags like:
And embed their publication home pages with a link tag like:
Verification
Records are validated according to guidelines found in the Standard Site Verification docs. Records that fail to validate will not be embedded in Bluesky posts, and will therefore not appear as enhanced link cards.
Additional integration notes
textContentis populated, we'll use that to calculate and display an estimated reading time.publication.iconis not populated, we will be unable to display an avatar next to the publication information in link cards. We may fall back to thepublication.basicThemecolors and the first letter of the publication name.Testing
To test, check out https://main.bsky.dev and paste a link into the post composer. No need to post at all, the preview in the composer should show the enhanced embed and give you a sense of if everything is looking good.
Here's where our UI is atm for each currently supported case: article without corresponding publication, article with corresponding publication, and publication only.



Not included in the initial release
Although we ingest all versions of Standard Site records from the firehose, updates to these records such as headline edits will not be reflected in posts that already embedded the
associatedRefsfor these records. This is to avoid what we call the “puppy problem”: someone reposts an article titled “I love puppies” and later finds the headline has been updated to “I hate puppies”.More moderation work is necessary before we’re ready to support live-updating of data. We plan to work towards that in the near future.
All reactions