Cross-posting

How to cross-post from Bluesky to Mastodon

Bluesky to Mastodon is the rare cross-posting direction where the destination is roomier than the source: a 300-grapheme Bluesky post always fits inside Mastodon’s 500-character default, so nothing you wrote gets cut. The two networks also share more culture than any other pair in this matrix — alt text as a norm, substance over engagement-bait, threads as native behavior.

The work hides in the plumbing instead: Mastodon’s hashtags do the discovery job Bluesky’s custom feeds do, its servers accept 16 MB images where Bluesky compresses to ~1 MB, and an opt-in bridge called Bridgy Fed can mirror your posts across the protocol gap automatically. Here’s what transfers, what needs attention, and both workflows.

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee

Bluesky vs Mastodon: the spec deltas

Everything that changes between the two composers, side by side.

BlueskyMastodon spec mapping. Limits last verified June 2026; platforms change these quietly, so check the composer when in doubt.
SpecBluesky (from)Mastodon (to)
Primary canvas1200 × 675 px · 16:9 (post image)1200 × 675 px · 16:9 (post image)
Caption limit300 graphemes (visual characters — emoji count once)500 characters by default — instance admins can raise it
Video lengthShort clips — Bluesky has been raising limits (around 3 minutes as of early 2026)Instance-dependent; default upload caps are modest, so keep clips short
HashtagsPlain-text hashtags count toward the 300-grapheme limitCount toward the limit and drive most discovery (most instances have no algorithmic feed)
ProtocolAT Protocol — bridges to the fediverse only via opt-in Bridgy FedActivityPub — native to the fediverse
Image file sizeCompressed to ~1 MB (976.56 KB) per imageUp to 16 MB per image on default servers
Quote postsNative, routine behaviorAdded in Mastodon 4.5 (late 2025) with author-permission controls

The good news

What transfers cleanly

  • Every word: 300 graphemes always fits a 500-character default budget — the only text-cluster direction with zero truncation risk, and many instances allow even more room.
  • The alt-text habit: both communities treat image descriptions as table stakes and boost described images further — copy your Bluesky alt text straight across.
  • The 16:9 default graphic: 1200 × 675 px is the recommended post-image size on both platforms, and both take up to four images per post.
  • Short video: a 1080p H.264 clip inside Bluesky’s ~3-minute ceiling also sits comfortably under Mastodon’s default ~99 MB file cap — both servers transcode after upload anyway.
  • Thread structure: both networks treat reply-chains as first-class publishing, so a Bluesky thread rebuilds one-for-one on Mastodon.

The fine print

What breaks in transit

  • Discovery changes engines: on Bluesky, custom feeds and the Discover tab surface posts; on Mastodon, hashtags are the main mechanism on mostly chronological servers — a tag-free post that traveled fine on Bluesky is invisible to Mastodon’s tag-following readers.
  • Compressed images: the copy Bluesky serves has been squeezed to roughly 1 MB (976.56 KB) — re-uploading it wastes Mastodon’s 16 MB allowance. Post from your original exports and set the focal point so previews crop correctly.
  • Handles and mentions: @name.bsky.social means nothing on Mastodon, where mentions take the @user@instance.domain form — re-find the people you’re tagging or name them in plain text.
  • Content-warning expectations appear: many Mastodon communities expect CWs on topics like politics, spoilers, or food — a convention Bluesky handles with feed choice and media labels instead. The CW text also counts toward your 500.
  • Quote posts get conditional: native and routine on Bluesky, they only arrived on Mastodon with the 4.5 release in late 2025, gated by author-permission controls — on older servers or clients your quote may not render as one.

Step by step: by hand vs with SocialKit

The manual way

  1. Paste the text — then consider un-shrinking it: the 200 extra characters are room to restore the context you trimmed to fit Bluesky.
  2. Re-count with Mastodon’s friendlier math: links cost a flat 23 characters, and only the @username part of a mention counts.
  3. Add 2–3 specific hashtags at the end — on Mastodon they’re the discovery engine, not a style choice.
  4. Re-upload images from your masters with alt text, and set the focal point on each so every client’s preview crops to the subject.
  5. Add a content warning where your instance’s culture expects one — remember the CW text counts toward the limit.
  6. Publish when your instance is active: chronological timelines mean timing decides who sees the post at all.

With SocialKit — compose once, customize per network

  1. Compose once: write the post in SocialKit’s composer and select both Bluesky and Mastodon.
  2. Customize the Mastodon variant on the same screen: restore the context you cut for Bluesky, add the hashtags, and keep alt text on every image.
  3. Schedule each network into its own best slot — the two audiences are awake at different hours.
  4. Let SocialKit publish both natively, then compare results in its analytics to see which home the post prefers.
Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee

Pro tips

Tip 1

Treat the extra 200 characters as room for context, not padding — un-abbreviate the jargon, add the one-line background, write out what the link is. The Bluesky squeeze often cuts exactly what Mastodon’s slower, read-everything culture rewards.

Tip 2

If you only want a mirror, Bridgy Fed can do it for you: follow @ap.brid.gy from your Bluesky account and the opt-in service republishes your public posts to a bridged fediverse handle (as of June 2026). Just know Mastodon users will be interacting with a mirror, not a native account.

Tip 3

Don’t lean on quote posts as the format: with Mastodon quote support still spreading across servers since 4.5, a post that only makes sense as a quote can render as a plain link for part of your audience.

FAQ

Bluesky → Mastodon questions

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee

Can I automatically mirror my Bluesky posts to Mastodon?

Yes — Bridgy Fed, a free opt-in bridge, mirrors public Bluesky posts to a bridged fediverse handle once you follow @ap.brid.gy on Bluesky (as of June 2026). It’s a mirror rather than a real account: replies and discovery behave differently, which is why brands usually post natively to a Mastodon account they control instead.

Will my Bluesky post fit Mastodon’s character limit?

Always. Bluesky caps posts at 300 graphemes while standard Mastodon allows 500 characters — and Mastodon counts more generously still, billing links at a flat 23 characters, with instance admins free to raise the limit further.

Should I add hashtags when cross-posting to Mastodon?

Yes — two or three specific tags. Most Mastodon servers have no algorithmic feed, so hashtag follows and tag timelines are how new readers find you. On Bluesky tags mostly spend graphemes; on Mastodon they are the distribution.

Do I need to re-upload my images?

Re-upload from your original exports rather than saving images off Bluesky — its pipeline compresses every image to roughly 1 MB, while default Mastodon servers accept up to 16 MB and re-serve your file across the fediverse. Carry the alt text over and set Mastodon’s focal point on each image.

Post to Bluesky and Mastodon in one go

Compose once, customize the caption per network, and let SocialKit publish to Bluesky, Mastodon, and 9 more platforms on schedule — no re-uploading, no copy-paste.

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee