BlueskyAvailable now
A Bluesky feed widget with nothing to sign in to.
Bluesky is the rare network that hands public posts to anyone who asks. There is no developer account, no app review and no key to renew, so a Bluesky feed widget goes from a pasted handle to posts on your page in one step. The limits are few, and they are worth knowing before you plan around them.
Bluesky works today on every plan, including Free. Accounts are read through Bluesky's public API with no key on either side. Hashtag search is the one exception: Bluesky refuses it to anonymous readers, so the connect screen tells you whether it is switched on.
What Bluesky hands over
What a Bluesky widget can show
Bluesky publishes posts over the AT Protocol, and its public API serves any account's posts to anyone. That makes accounts easy. What it holds back is search, which it refuses to anonymous readers outright.
What you get
- Original posts from any public account, by handle, custom-domain handle, DID or profile link
- The first image of a post or gallery, with the author's alt text when they wrote some
- Video posts as a still with a play marker, and link cards with their preview image
- Like and reply counts at the moment of sync
- A link from each post back to it on bsky.app
What it won’t do
- Replies, which are conversation rather than the account's own voice
- Reposts: the wall shows what the account wrote, not everything it amplified
- Every image in a multi-image post. A tile shows the first, so the author's lead photo is the one that counts
- Hashtag search without a signed-in session, which Bluesky's public API refuses
Setup
How to add a Bluesky feed to your website.
Copy the handle
Take it from the profile: @name.bsky.social, a custom domain like @studio.com, or the profile URL itself. A bare username is read as name.bsky.social, which is where everyone without their own domain lives.
Add Bluesky as a source
Paste the handle into Sources. We look the account up, confirm its display name and read its recent posts straight away. There is no sign-in screen, because there is nothing to authorise.
Pick a layout for mixed posts
Bluesky posts are mostly text with the occasional photo. A compact or editorial layout reads well either way; a photo grid is built for pictures and treats the text-only majority as an afterthought.
Embed it
Paste the snippet into your site once. New posts arrive at your plan's refresh cadence, daily on Free, with no redeploy.
Bluesky, in particular
Why Bluesky is free to read, and what that means for your wall
Bluesky was built so that public posts are public data: any app can read them without a contract. For a website widget that removes the usual point of failure, a platform deciding to charge for access or revoke an app, and it is why Bluesky sits on the free plan while X is metered.
- There is no token to expire, so there is no reconnect prompt to miss
- Handles change, especially when someone moves to their own domain. We follow the account by its permanent DID, so a new handle does not break the feed
- Quote posts come through with the account's own words and any image it attached
- Hashtag posts come from strangers, so they are screened against a blocklist before anything is stored
Install guides
Works on the site you already have.
The embed is one script tag and one element, which every builder that allows custom HTML accepts, and it renders in its own shadow root so your styles and ours never collide. Each guide shows where the paste box lives.
No. Bluesky's public API serves any account's public posts to anyone, so pasting a handle is the whole connection. There is no password, no app password and no token to renew for an account feed.
Yes. A handle like @studio.com is an ordinary Bluesky handle. We resolve it once and then follow the account by its permanent identifier, so moving from @studio.bsky.social to your own domain later does not break the feed.
Sometimes. Bluesky refuses search to anonymous readers, so a hashtag feed depends on a signed-in session on our side rather than the open API that accounts use. The connect screen tells you plainly whether it is available, and tagged posts are screened against a blocklist before they are stored.
No, deliberately. Replies are conversation and reposts are other people's posts; a website widget should show what the account itself published. Quote posts do come through, with the account's own words and any image it attached.
Because Bluesky does not charge anyone for reading public posts and X does. Sources are gated on what they cost to read, not on the size of the network, so Bluesky is a free source on every plan and X sits in a metered slot from Studio up.
More networks
Other feeds people build.
Every network compared side by side, including what each one demands before it will hand anything over, is on the social media widgets overview.
Mastodon widget
Public posts from any account, on any fediverse server
Twitter (X) widget
Public posts from any account, a hashtag, or mentions
RSS widget
Articles from any blog or publication feed
Build your first wall today.
Connect Bluesky from your workspace, pick a layout, and paste one line of embed code.
