Threads and Bluesky are the two short-text networks people most often run side by side, and they count text differently enough that one post can pass on one and be refused on the other. Threads allows 500 characters but counts emoji by the byte, so a smiley costs four; Bluesky allows 300 graphemes, where a smiley, a flag and a family emoji each cost one, and adds a ceiling of 3,000 bytes. Pictures, video, links and threads differ too.
This page puts the rules next to each other and shows how to write one post for both. The figures are what Preflight enforces when it publishes through each network's API, checked against the code on 20 October 2026. The detail behind each is on the Threads limits and Bluesky limits pages.
The rules side by side
| Threads | Bluesky | |
|---|---|---|
| Text | 500 characters | 300 graphemes, and no more than 3,000 bytes |
| How emoji count | By their UTF-8 bytes: a smiley is 4, a flag 8 | As one each, whatever they weigh |
| Links | At most 5 in a post | Count as the text you type |
| Pictures | Up to 20, 8 MB each, ratio up to 10:1 | Up to 4, about 2 MB each |
| Video | One, up to 5 minutes and 1 GB, 23 to 60 fps | One, up to 10 minutes; Preflight allows 100 MB |
| Pictures with a video | Carousel of pictures and videos is possible | Not possible: a post has one embed |
| Longer text | A chain of replies under the first post | A thread, each part its own post of 300 graphemes |
| Alt text | Yes | Yes |
| Editing | Not through the API: delete and post again | Not possible: delete and post again |
| Figures | Views, likes, replies, reposts | Likes, replies, reposts; no views or reach |
Why the same text gets different verdicts
Take a post of 120 words in English, about 700 characters. It is too long for both. Take 280 characters with ten emoji: on Bluesky that is 280 graphemes and fits, on Threads the emoji cost 40 to 80 bytes and the total is 320 to 360 of 500, which also fits. Now take 90 smileys and nothing else: on Bluesky that is 90 graphemes, on Threads 360 bytes. The difference grows with every emoji, flag and joined sequence, which is why a Threads counter has to count bytes and a Bluesky one has to count graphemes. The character counter shows both for the same draft.
The usual direction is the other way round: Bluesky is the tighter network. A post that fits 300 graphemes fits Threads' 500 almost always, so writing for Bluesky first is the safe order for plain text. A post that was written at 450 characters for Threads needs either a trimmed version for Bluesky or a thread of two parts.
Links, pictures and video
Threads refuses more than five links in a post; on Bluesky a link is just text and costs the characters you typed, so a long address eats a visible part of the 300. For pictures the two diverge most: Threads takes up to 20 in one post, Bluesky four, and Bluesky is the stricter on size at about 2 MB per picture, so a large photo has to be recompressed first. A video of up to five minutes fits both; Threads wants 23 to 60 frames per second and checks it after processing.
One post, two networks
The workable order is: write the text for Bluesky's 300, check the pictures against its four, then post to both. If the text needs more room, give Threads its own longer version rather than cutting Bluesky's: a scheduler with a different text per network does this in one composer. Preflight checks each version against its own network's rules before the post leaves, and posts to the two networks together or at different times. For how each network is scheduled, see how to schedule Threads posts and Bluesky scheduling; if a Threads post fails, Threads API errors explains the codes.
Questions people ask
- Can I post the same text to Threads and Bluesky?
- Yes, if it fits Bluesky's 300 graphemes, because that is the tighter limit. It then also fits Threads' 500 characters in almost every case. Text over 300 needs a shorter Bluesky version or a thread of two parts.
- Why does Threads count my emoji differently from Bluesky?
- Threads counts an emoji by its UTF-8 bytes, so a smiley is four characters and a flag eight. Bluesky counts graphemes, the characters a reader sees, so each of those is one. The same emoji-heavy post can fit one network and not the other.
- How many pictures can I post to Threads and Bluesky?
- Threads takes up to 20 pictures of 8 MB each in a post. Bluesky takes four, at about 2 MB each. A post for both networks is limited by Bluesky's four.
- Can I edit a post on Threads or Bluesky after it is published?
- Not through the API on either network. A Threads post can be deleted and a Bluesky post is a record that can be deleted; to change it you delete it and post again.
- Does Threads allow links in posts?
- Yes, up to five links in one post. A sixth is refused. Bluesky has no such cap, but each link counts as the characters you typed towards its 300.