Mastodon to Bluesky is the squeeze direction: 500 characters by default — often more, since instance admins can raise the limit — have to fit Bluesky’s hard 300-grapheme ceiling, written into the AT Protocol itself. This is the rare pair where the text, not the media, is the real migration work: posts need rewriting or threading, content warnings have no direct equivalent, and the hashtag block that powered your Mastodon reach mostly turns into dead weight.
The reward is reach into the larger of the two networks with content that already matches its culture — plain, specific, alt-texted. Here’s what carries over, what needs rework, and the manual versus SocialKit workflow.
€0.00 due today · cancel anytime · 7-day money-back guarantee
Everything that changes between the two composers, side by side.
| Spec | Mastodon (from) | Bluesky (to) |
|---|---|---|
| Primary canvas | 1200 × 675 px · 16:9 (post image) | 1200 × 675 px · 16:9 (post image) |
| Caption limit | 500 characters by default — instance admins can raise it | 300 graphemes (visual characters — emoji count once) |
| Video length | Instance-dependent; default upload caps are modest, so keep clips short | Short clips — Bluesky has been raising limits (around 3 minutes as of early 2026) |
| Hashtags | Count toward the limit and drive most discovery (most instances have no algorithmic feed) | Plain-text hashtags count toward the 300-grapheme limit |
| Protocol | ActivityPub — native to the fediverse | AT Protocol — bridged to the fediverse only via opt-in Bridgy Fed |
| Content warnings | Collapsible CW field; its text counts toward the limit | Media self-labels only — no text CW field (as of June 2026) |
| Image file size | Up to 16 MB per image on default servers | Compressed to ~1 MB (976.56 KB) per image |
The good news
The fine print
€0.00 due today · cancel anytime · 7-day money-back guarantee
Tip 1
Write the cut, don’t make it: the strongest 300-grapheme posts read like they were born short. Pull the single sharpest sentence from the Mastodon original and let it stand alone rather than compressing every clause.
Tip 2
Mirror option: Bridgy Fed bridges this direction too — follow @bsky.brid.gy@bsky.brid.gy from your Mastodon account and the opt-in service creates a bridged Bluesky presence for your public posts (as of June 2026). Check how it presents your longer posts before relying on it; a native account always presents better.
Tip 3
Compress deliberately: export images yourself at under 1 MB instead of letting Bluesky’s client crunch them — flat-color graphics saved as WebP or JPEG around 80% quality keep their crispness through the cap.
FAQ
€0.00 due today · cancel anytime · 7-day money-back guarantee
Not without editing — Bluesky’s limit is 300 graphemes, enforced by the AT Protocol, and the composer rejects longer drafts rather than truncating them. Rewrite the post shorter or split it into a thread; if your instance allows posts beyond 500 characters, budget for an even deeper cut.
No — Mastodon speaks ActivityPub and Bluesky speaks the AT Protocol. Bridgy Fed, a free opt-in bridge, spans the gap: follow @bsky.brid.gy@bsky.brid.gy from Mastodon and it mirrors your public posts to a bridged Bluesky handle (as of June 2026). For a brand presence, a native Bluesky account remains the better experience.
There’s no equivalent field — Bluesky supports self-applied media labels for adult or graphic content but no collapsible text warning as of June 2026. Rewrite CW posts so the necessary context sits in the opening line, and apply a media label when the sensitive part is the image or video.
They’re tappable and searchable, but they aren’t the discovery engine they are on Mastodon — Bluesky surfaces posts through custom feeds and the Discover tab, and every tag spends part of your 300 graphemes. Keep at most one or two, or rely on plain wording that feeds and search can match.
Compose once, customize the caption per network, and let SocialKit publish to Mastodon, Bluesky, and 9 more platforms on schedule — no re-uploading, no copy-paste.
€0.00 due today · cancel anytime · 7-day money-back guarantee