Bluesky thread splitter
Paste a long text and get it cut into posts that each fit Bluesky's 300 limit, counted the way the app counts. It breaks at paragraphs first, then sentences, then words, and never inside a link or an emoji. Everything runs in your browser; nothing is sent anywhere.
How to post the thread
In the Bluesky app, paste post 1 into the composer and add the next posts to the same thread from there before you hit Post. Or post 1 first and reply to yourself with each next one. Copy the posts from here as they are: the full links are kept, and the app shortens them itself when you paste.
Questions
How long can a Bluesky post be?
300 characters, counted as graphemes (what you see as one character), with at most 3000 UTF-8 bytes. The character counter explains the details and shows the exact text the app will post.
Why does a post here look longer than 300?
Because of links. Each post is measured after the app's link shortening, so a post with a 120-character link can have more than 300 characters as typed and still fit. If you post through the API or a third-party client that doesn't shorten links, those posts can be too long; for that case, shorten the link text yourself and keep the full URL in the link facet (how facets work).
Can I choose where it breaks?
Yes: put a line with only --- where you want a new post. The splitter still cuts a part again if
it doesn't fit on its own.
Does numbering count against the limit?
Yes, and it's included. The splitter reserves room for the widest number first (for example 12/12)
so no post goes over once numbers are added.