thread | string | — | An AT URI, or a post URL from any viewer using the /profile/{did}/post/{record_id} scheme. |
service | string | hosted | Bridge backend service OAuth, posting, and live events. Change when self-hosting. |
readonly | boolean | false | Hides in-page sign-in and posting. |
live | signed-in | all | off | signed-in | Who gets live updates? Affects when data is sent to the bridge, so please check the privacy policy before changing. |
sort | oldest | newest | likes | oldest | How comments are ordered at each level. |
max-depth | number | 6 | Maximum nested reply depth rendered inline. |
labels | hide | collapse | show | collapse | Treatment for moderation-labelled posts. |
viewer | URL | bsky.app | App view used for profile and post links. Think bluesky, mu.social, etc. |
viewer-name | string | hostname of the viewer property | “Reply on …”. Defaults to Bluesky for the default viewer. |
appview | URL | public.api.bsky.app | Public AppView used to fetch thread snapshots. |
show-root | boolean | false | Render the discussion's root node above the replies. |
replies | expanded | collapsed | expanded | Collapsed keeps replies behind a toggle and fetches only the root post until they are opened. With show-root, renders a post card. |
composer | dialog | inline | dialog | Inline opens the reply composer below the post instead of as a modal, so it stays inside the element's own box (for example in a resizing iframe). |
page-url | string | - | The embedding page's canonical URL. Enables no-JavaScript sign-in on a same-origin, cookie-mode service. |
fetched-at | epoch ms | ISO date | - | When threadData was fetched. Set automatically by SSR prefetch; age older than stale-time triggers one background refresh. |
stale-time | number (ms) | 60000 | How long a preloaded snapshot is trusted before one client-side refresh from the public AppView. Infinity disables it. |
svebcomponents.dev @svebcomponents.dev
<atproto-comments> is a web component that allows you to simply drop a thread onto your page and have users read & write comments on your site. all your users need is an ATmosphere account (bluesky, eurosky, their own PDS hosted from their basement) to log in using oauth. atproto.svebcomponents.dev