POSSE
POSSE stands for Publish on Own Site, Syndicate Elsewhere. It is the IndieWeb strategy for participating in social networks without giving them ownership of your content.
The pattern
- Write and publish on your own domain first — the canonical version lives at your URL
- Copy the post to silos — Bluesky, Mastodon, etc. — with a link back to your original
- Aggregate interactions back — likes, replies, and reposts on the silo can flow back as webmentions
This way your site is always the source of truth, and followers on any platform can discover your canonical content.
IndiePub syndication targets
Bluesky (ATProto)
Bluesky posts are created via the AT Protocol using @atproto/api. IndiePub builds rich text with facets (links, mentions) from your entry and creates a app.bsky.feed.post record.
Configure in astro.config.mjs:
indiepub({ syndication: { bluesky: { handle: 'you.bsky.social' }, },})Required env var: BSKY_APP_PASSWORD
standard.site (ATmosphere)
IndiePub also publishes standard.site lexicon records alongside Bluesky posts. This registers your site as a publication in the ATmosphere, independent of Bluesky — future-proofing against Bluesky lock-in.
Records are written with putRecord (idempotent), so re-syndicating the same post is safe. Enabled automatically when bluesky is configured; disable with standardSite: false.
Mastodon (ActivityPub)
Posts to Mastodon via the Mastodon API (POST /api/v1/statuses). Status text is built from your entry, respecting the 500-character limit with smart truncation.
indiepub({ syndication: { mastodon: { instance: 'mastodon.social', handle: 'yourhandle' }, },})Required env var: MASTODON_ACCESS_TOKEN
Triggering syndication
When publishing via Micropub, include a syndicate-to property:
{ "type": ["h-entry"], "properties": { "content": ["Hello from my own site!"], "mp-syndicate-to": ["bluesky", "mastodon"] }}Micropub clients that support syndicate-to will automatically discover your targets by querying GET /micropub?q=config.
Federation vs. POSSE
For Mastodon, IndiePub also acts as an ActivityPub actor, meaning your site can be followed directly from any Fediverse client — no POSSE copy needed. Followers receive your posts as Create(Note) activities delivered to their inboxes. See Packages → @indiepub/activitypub for details.