Cross-posting

How to cross-post from Bluesky to Threads

Bluesky and Threads are both text-first feeds, but the direction from Bluesky to Threads is more forgiving than it first looks — you’re expanding from a tight 300-grapheme budget to Threads’ 500-character cap. The real friction lives elsewhere: Bluesky’s native link-card previews don’t carry over, @handle.bsky.social mentions are meaningless on Threads, and the hashtag philosophy is inverted — Bluesky lets you scatter plain-text tags across your 300 graphemes while Threads accepts exactly one topic tag per post.

The other shift is algorithmic. Bluesky’s custom-feed ecosystem rewards posts that spark conversation in interest-specific feeds, while Threads runs a Meta recommendation engine that weights early engagement differently. A post written for Bluesky’s plain-spoken, link-heavy style often needs a Threads-native reframe — tighter hook, one tag, and a standalone CTA that doesn’t assume readers will click a card.

Start My Free Trial

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

Bluesky vs Threads: the spec deltas

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

BlueskyThreads spec mapping. Limits last verified June 2026; platforms change these quietly, so check the composer when in doubt.
SpecBluesky (from)Threads (to)
Primary canvas1200 × 675 px · 16:9 (post image)1080 × 1350 px · 4:5 (post image)
Caption limit300 graphemes (visual characters — emoji count once)500 characters
Video lengthShort clips — Bluesky has been raising limits (around 3 minutes as of early 2026)Up to 5 minutes
HashtagsPlain-text hashtags count toward the 300-grapheme limitOne topic tag per post — Threads replaced multi-hashtag culture with a single tag
Link previewRich card embed generated automatically when a URL is pastedNo automatic card embed — URL appears as plain text in the caption
Hashtag conventionPlain-text hashtags count toward the 300-grapheme limit; multiple tags are normalOne topic tag per post — Threads replaced multi-hashtag culture with a single tag
@mention namespaceAT Protocol handles (@username.bsky.social) scoped to the Bluesky networkInstagram-linked accounts in a separate namespace — must be looked up and rewritten

The good news

What transfers cleanly

  • Post length: a Bluesky post at the full 300-grapheme cap fits comfortably inside Threads’ 500-character limit, so the copy arrives untruncated — you even have room to expand the thought.
  • Plain text, line breaks, and emoji: Threads renders emoji, paragraph breaks, and accented characters the same way Bluesky does, so formatting that relies only on whitespace survives the copy-paste.
  • Images attached to the post: a photo or graphic you attached on Bluesky can be re-attached on Threads in the same composer pass without re-editing.
  • The core idea and voice: both platforms reward concise, conversational writing — a post that resonates on Bluesky’s chronological feeds often lands just as well once the platform-specific signals are stripped out.
  • Short video clips: Bluesky supports short clips (around 3 minutes as of early 2026) and Threads accepts up to 5 minutes, so brief video attachments move across without a length cut.

The fine print

What breaks in transit

  • Link-card embeds: Bluesky generates a rich preview card when you paste a URL into the composer; Threads does not support the same automatic card embed, so the URL appears as plain text and the visual preview is lost — you may need to add context that the card was carrying.
  • @mention portability: Bluesky handles follow the @username.bsky.social format and are scoped entirely to the AT Protocol network — they resolve to nothing on Threads, where handles are tied to Instagram accounts. Every mention must be looked up and rewritten or removed.
  • Multi-hashtag culture: Bluesky allows plain-text hashtags that count toward the 300-grapheme limit and can drive discovery across custom feeds; Threads has replaced multi-hashtag culture with a single topic tag per post — a Bluesky thread full of tags must be reduced to one.
  • Threaded reply chains: Bluesky users often use reply threads to extend a thought beyond 300 graphemes; Threads has its own reply model but a Bluesky thread doesn’t import as a chain — you either condense it into one 500-character post or manually recreate each reply.
  • Quote-post context: Bluesky’s quote-post (repost with comment) format embeds the original clearly; on Threads, quoting another post works differently and an imported quote reference may read out of context without the embedded card.

Step by step: by hand vs with SocialKit

The manual way

  1. Copy the raw text of your Bluesky post — without the URL that generated the link card — into a plain-text editor so you can see the true character count.
  2. Search for the equivalent Threads account for every @mention in the post; replace each @handle.bsky.social with the correct Threads handle or remove the mention if no account exists.
  3. Choose one topic tag that best describes the post and replace all other hashtags with it — Threads’ single-tag convention means the rest will not contribute to discovery.
  4. Decide what replaces the link card: either paste the bare URL into the Threads caption (it appears as plain text) or add a brief sentence summarising the destination so readers have context without a preview.
  5. Rewrite the call-to-action if it references Bluesky-specific features — phrases like "join the thread below" or "check the replies" map poorly to Threads’ feed mechanics.
  6. Post to Threads and, if the original Bluesky post was part of a reply chain, decide whether to recreate it as a Threads reply chain or collapse it into a single longer post that fits within 500 characters.

With SocialKit — compose once, customize per network

  1. Compose once in SocialKit’s editor: write your base post for Bluesky within the 300-grapheme limit, then open the Threads variant on the same screen to expand the copy and swap the tags.
  2. Use the per-network caption field to replace @mentions and reduce hashtags to one topic tag for Threads without changing the Bluesky version.
  3. Schedule each post independently — Bluesky’s chronological feeds and Threads’ algorithmic surface reward different peak times, so stagger rather than fire both simultaneously.
  4. Review per-post analytics in SocialKit after both posts are live to compare reach and engagement and decide which version of the copy to lead with next time.
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 a gift, not padding: Threads’ 500-character cap gives you room to add a sentence that would have been cut on Bluesky — use it to sharpen the hook or add a standalone CTA rather than copying filler.

Tip 2

Front-load the substance: Threads’ algorithmic feed truncates long posts with a "more" tap, and the recommendation engine weights the first few lines heavily — put your best point first, even if the Bluesky original buried the lede.

Tip 3

Write the Threads tag last: choosing your single topic tag after you’ve written the full Threads caption prevents you from over-indexing on a tag keyword and makes the copy read more naturally.

FAQ

Bluesky → Threads questions

Start My Free Trial

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

Does Bluesky’s 300-grapheme limit include hashtags and mentions?

Yes — on Bluesky, plain-text hashtags and @mentions count toward the 300-grapheme budget (visual characters, with emoji counting once). On Threads, the 500-character cap applies to the full post body, and the single topic tag is also included in that count.

Can I bring my Bluesky link card to Threads?

Not automatically. Bluesky generates a rich preview card when a URL is pasted into its composer; Threads does not support the same format, so the URL appears as plain text. Add a descriptive sentence around the link to give readers the context the card was providing visually.

How many hashtags can I use on Threads?

Threads replaced multi-hashtag culture with one topic tag per post — that is the current convention as of June 2026. On Bluesky, multiple plain-text hashtags are normal and drive discovery across custom feeds. When moving a Bluesky post to Threads, pick the single most relevant tag and drop the rest.

Do Bluesky @mentions work on Threads?

No. Bluesky handles are tied to the AT Protocol network and follow the @username.bsky.social format; they are scoped entirely to that network. Threads handles are linked to Instagram accounts and follow a different namespace entirely. Every @mention must be looked up on Threads individually and either rewritten with the correct handle or removed.

Post to Bluesky and Threads in one go

Compose once, customize the caption per network, and let SocialKit publish to Bluesky, Threads, 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