Run with Docker
Drop in a docker-compose.yaml, set a couple of env vars, and you’re live.
docker compose up -d
docker compose kill -s HUP cross-post
SIGHUP reloads accounts without dropping the WebSocket.
Snapbird · Bluesky → Mastodon
Snapbird is a small, self-hosted bridge that mirrors your Bluesky
posts to Mastodon in real time — preserving images, alt‑text, and
rewriting @mentions and links so they land cleanly on the other side.
Features
Subscribes to Bluesky’s Jetstream firehose and posts to Mastodon the moment your skeet lands. No polling, no cron.
Tries to resolve each @handle to its Mastodon account. Falls back to the Bluesky profile URL when no link exists, and skips posts where the swap would silently turn into a reply.
Pulls full-size images from Bluesky, uploads them to Mastodon, and forwards the alt text along with them. Accessibility carries over.
Bluesky’s shortened display text gets replaced with the real URL on Mastodon, so links remain clickable and obvious.
Use the hosted service at snapbird.org and skip the setup, or run it yourself with Docker for a personal single-user deployment.
Replies aren’t mirrored. Only standalone posts cross over — so your Mastodon timeline doesn’t fill with one-sided fragments.
Deploy
Drop in a docker-compose.yaml, set a couple of env vars, and you’re live.
docker compose up -d
docker compose kill -s HUP cross-post
SIGHUP reloads accounts without dropping the WebSocket.
A built-in cli.mjs mirrors every admin operation for scripting and headless use.
npm run manage -- user add alice@example.com
npm run manage -- account add ...
A small web UI for adding users, pasting Mastodon tokens, and toggling accounts on or off. Passkey sign-in — first user becomes admin.
Sign in