calmposts

Thread splitter for X, Bluesky and Threads

Write the whole thing as one text. The splitter shows how calmposts would send it: a thread on X, Bluesky and Threads, cut at paragraphs and sentences, and one post on LinkedIn, every part counted by its network's rules.

Paste or type a text to see it as a thread on each network.

X

    Bluesky

      Threads

        LinkedIn

          Schedule this post in calmposts

          Free trial. After you sign up or sign in, the text opens in the composer as a new post, and nothing is saved or published until you say so.

          Coming soon: Threads and LinkedIn.

          A worked example

          One text of five short paragraphs and a link, as each network gets it.

          We moved our weekly updates to threads, and here is why. First, people read threads. A single post with a link gets a glance; a thread with a clear first line gets read to the end. Our last three updates were threads, and twice as many people replied to them. Second, a thread lets each idea stand on its own. One post says what changed, the next one says why, the last one says what comes next. Nobody has to open a link to get the point. Third, threads are easy to write once you stop counting characters by hand. Write the whole update as one text, look at where it breaks, and fix the one sentence that ends up alone. The full notes are on our blog: calmposts.com/blog/weekly-threads

          X 3 posts

          1. We moved our weekly updates to threads, and here is why. First, people read threads. A single post with a link gets a glance; a thread with a clear first line gets read to the end. Our last three updates were threads, and twice as many people replied to them.

            1/3 · 260
          2. Second, a thread lets each idea stand on its own. One post says what changed, the next one says why, the last one says what comes next. Nobody has to open a link to get the point.

            2/3 · 179
          3. Third, threads are easy to write once you stop counting characters by hand. Write the whole update as one text, look at where it breaks, and fix the one sentence that ends up alone. The full notes are on our blog: calmposts.com/blog/weekly-threads

            3/3 · 238

          Bluesky 3 posts

          1. We moved our weekly updates to threads, and here is why. First, people read threads. A single post with a link gets a glance; a thread with a clear first line gets read to the end. Our last three updates were threads, and twice as many people replied to them.

            1/3 · 260
          2. Second, a thread lets each idea stand on its own. One post says what changed, the next one says why, the last one says what comes next. Nobody has to open a link to get the point.

            2/3 · 179
          3. Third, threads are easy to write once you stop counting characters by hand. Write the whole update as one text, look at where it breaks, and fix the one sentence that ends up alone. The full notes are on our blog: calmposts.com/blog/weekly-threads

            3/3 · 248

          Threads 2 posts

          1. We moved our weekly updates to threads, and here is why. First, people read threads. A single post with a link gets a glance; a thread with a clear first line gets read to the end. Our last three updates were threads, and twice as many people replied to them. Second, a thread lets each idea stand on its own. One post says what changed, the next one says why, the last one says what comes next. Nobody has to open a link to get the point.

            1/2 · 441
          2. Third, threads are easy to write once you stop counting characters by hand. Write the whole update as one text, look at where it breaks, and fix the one sentence that ends up alone. The full notes are on our blog: calmposts.com/blog/weekly-threads

            2/2 · 248

          LinkedIn 691 / 3,000

          1. We moved our weekly updates to threads, and here is why. First, people read threads. A single post with a link gets a glance; a thread with a clear first line gets read to the end. Our last three updates were threads, and twice as many people replied to them. Second, a thread lets each idea stand on its own. One post says what changed, the next one says why, the last one says what comes next. Nobody has to open a link to get the point. Third, threads are easy to write once you stop counting characters by hand. Write the whole update as one text, look at where it breaks, and fix the one sentence that ends up alone. The full notes are on our blog: calmposts.com/blog/weekly-threads

            1/1 · 691

          LinkedIn has no threads: the whole text is one post.

          Write once, split for each network

          A thread is several posts in a row from the same account, each a reply to the one before. X, Bluesky and Threads all have them, and their limits differ: 280 on X, 300 on Bluesky, 500 on Threads. They count differently too, so the same text makes a different thread on each.

          calmposts lets you write the text once. Where it is longer than one post, it goes out as a thread cut to that network's limit; where it fits, it goes out as one post. This page runs the composer's splitting code, built for the browser, so the thread you see here is the thread calmposts sends.

          Where the cuts go

          Each post takes as many words as fit and ends at the strongest break among them, the furthest one of its kind. The strongest break is a blank line between paragraphs; then a single line break; then the end of a sentence, a full stop, question mark, exclamation mark or ellipsis, with any closing quotes and brackets after it; then any space between two words.

          So when a paragraph ends within the limit, the post ends there, even if a few more words would fit. When no paragraph ends in time, the post ends at the last line break, then at the last full stop, and only a sentence longer than a whole post is cut between two words.

          A word is cut only when it is longer than a post on its own, such as a very long address. It is then cut between characters, and on X a link is never cut at all, since it counts 23 there whatever its length.

          What it keeps and what it drops

          Everything you wrote stays as written: line breaks inside a post, double spaces, emoji, links. The only thing dropped is the space or line break where one post ends and the next begins, because a post does not start with a blank line.

          Nothing is added. There is no automatic «1/5» numbering and no thread emoji at the start. If you want numbering, write it into the text: it is counted like everything else, and you see at once whether the post still fits.

          Each network's rules, each network's thread

          X counts by weight, with links at 23 and emoji and CJK characters at 2. Bluesky counts the characters you see, links in full. Threads counts like Bluesky but an emoji by its bytes. A text with several long links can make a shorter thread on X than on Bluesky, and a text full of emoji a longer one on Threads than you would guess.

          The X column follows your account: switch on X Premium and the limit is 25,000, so most texts become a single post there.

          calmposts sends threads of up to 25 parts. A text that needs more is too long for one thread, and the splitter says so.

          Writing a text that splits well

          Keep paragraphs shorter than the tightest limit you post to, 280 if X is among them. Then every paragraph fits a post, and the splitter ends each post at a paragraph's end, usually with two or three paragraphs to a post on Threads and one or two on X.

          Give each paragraph one idea and a last sentence that can end a post. Put the point of the whole text in the first paragraph, because the first post is the one people see in their timeline; the rest is for the ones who opened the thread.

          Read the columns from the top before you schedule. When a post ends with a lonely half-sentence, a blank line one sentence earlier usually fixes it on every network at once.

          LinkedIn: one post

          LinkedIn has no threads. calmposts sends the text there as one post of up to 3,000 characters, and a thread you wrote in parts is joined with a blank line between every two. The splitter shows LinkedIn's count of the whole text and how far over 3,000 it is, if it is.

          Post limits side by side

          What one post takes on each network calmposts posts to, and how it is counted there.

          NetworkOne postHow characters countLinksThreads
          X280 characters; 25,000 with X PremiumBy weight: most letters 1, emoji and CJK characters 223 each, whatever their lengthA chain of replies, up to 25 posts in calmposts
          Bluesky300 characters and 3,000 bytesGraphemes: each character you see counts 1As written, every characterA chain of replies, up to 25 posts in calmposts
          Threads500 charactersGraphemes, but an emoji counts its UTF-8 bytesAs written; at most 5 different linksA chain of replies, up to 25 posts in calmposts
          LinkedIn3,000 charactersGraphemes: each character you see counts 1As written, every characterNone: a thread goes out as one post

          Common mistakes

          Numbering before splitting

          Adding «1/7» to every post by hand and then editing the text means renumbering everything. Write the text, look at the split, and number last if you want numbers.

          Ending a post mid-sentence

          A cut at exactly 280 often lands in the middle of a sentence, and readers stop at a broken line. Let each post end at a full stop.

          One thread for every network

          A thread cut for X has posts of 280. Sent to Threads unchanged, it uses half of each 500; on Bluesky some parts may not fit at all, because links count in full there.

          A first post that says nothing

          The first post is the one people see in the timeline. Put the point there, not «A thread 🧵».

          Links in every part

          One link in one part is usually enough: readers decide on the first post, and on X each post with a link costs more to publish through the API.

          When a text is too long even for a thread

          calmposts sends threads of up to 25 parts on X, Bluesky and Threads. A text that needs more is better as two threads, or as an article with a link to it.

          On LinkedIn the limit is 3,000 characters for the whole post; the splitter shows how far over the text is, so you know how much to cut for LinkedIn's version.

          How to split a text into a thread

          1. Paste the whole text. Write or paste everything you want to say, paragraphs and all.
          2. Read each network's thread. Each column shows the posts that network gets, each with its count against the limit.
          3. Move the breaks. If a post ends badly, add a blank line or end a sentence where you want the cut, and watch the threads change.
          4. Schedule it. Press «Schedule this post in calmposts»: the composer opens with your text and cuts it the same way for each network you pick.

          Questions about splitting threads

          How does the thread splitter decide where to cut?

          Each post ends at the strongest break that fits: a blank line, then a line break, then the end of a sentence, then a space. Within each kind it takes the furthest one, so the posts are as full as they can be without breaking a paragraph.

          Does it number the posts?

          No. Nothing is added to your text. Write «1/5» yourself if you want it; it is counted like the rest.

          Why is my thread longer on Bluesky than on X?

          Because Bluesky counts links in full while X counts every link as 23, and Bluesky's 300 is close to X's 280. A text with several long links needs more room on Bluesky.

          How many posts can a thread have?

          calmposts sends up to 25 parts per thread on X, Bluesky and Threads.

          What happens on LinkedIn?

          LinkedIn has no threads, so the whole text goes out as one post of up to 3,000 characters.

          Is this how calmposts really publishes?

          Yes. The splitter is the composer's own code, and the server cuts the text the same way when it publishes, so the thread you see is the thread that goes out.

          More from calmposts

          Write once, post everywhere

          calmposts counts your post for every network as you type, turns a long text into a thread where a network has threads, and sends each part on time through the networks' official APIs.

          See the plans