Writing to the limit
3,000 characters is room, not a target. Most of a long post sits behind «see more»; the first two lines do the work.
A LinkedIn post holds 3,000 characters, more than ten posts on X, and LinkedIn has no threads to spill over into. Paste your post to see how much of the 3,000 it takes, and whether the opening lines carry it.
0 / 3,000 3,000 left
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.
LinkedIn is coming to calmposts soon. Until then, your post can wait as a draft.
A typical LinkedIn post: short paragraphs, bullets, a question at the end and two hashtags. On LinkedIn it is one post; on the networks with shorter limits it becomes a thread.
We cut our weekly report from three hours to twenty minutes. Here is what changed. • We stopped copying numbers by hand. The dashboard exports them. • We write one summary, not one per channel. • We schedule it for Friday morning, when people read it. The surprising part: nobody missed the long version. Replies doubled, because the short one ends with a question. What would you cut from your weekly report? #reporting #productivity
| Network | Counts | Goes out as |
|---|---|---|
| X | 441 / 280 | 2 posts |
| Bluesky | 438 / 300 | 2 posts |
| Threads | 438 / 500 | 1 post |
| 438 / 3,000 | 1 post |
The text of a LinkedIn post holds up to 3,000 characters. calmposts counts them as graphemes, the characters you see: a letter is 1, an emoji is 1 whatever it is made of, a Chinese character is 1. Nothing is weighted as on X, and there is no byte limit to watch as on Bluesky.
Spaces and line breaks count 1 each. On LinkedIn they are part of the layout: short paragraphs with blank lines between them are how most readable posts look, and each blank line costs 2. A post of twelve short paragraphs spends 22 characters on the gaps, which 3,000 can easily afford.
As for every network, calmposts normalises the text to NFC before counting, so an accented letter counts 1 however it was typed or pasted.
In calmposts a link counts in full, every character of it. A link with long tracking parameters is worth trimming, not because 3,000 runs out, but because a clean address looks more trustworthy in a post.
Hashtags count as written. calmposts sends #word the way LinkedIn's own composer does, so LinkedIn turns it into a link to the topic; its characters count all the same.
An @ followed by a name is plain text in a calmposts post: tagging a person or a company on LinkedIn needs their member or page ID, which calmposts does not use. The name counts as written and is shown as you typed it.
LinkedIn shows the first lines of a long post and folds the rest behind a «see more» link. Readers decide from those lines whether to open it, so the 3,000 are a ceiling, not a goal.
The counter shows the whole length. Read your first two lines as if they were the only ones anybody will see, because for most readers they are.
LinkedIn posts have no bold or italics. Some people paste letters from Unicode's mathematical alphabets to fake them: 𝐁𝐨𝐥𝐝 looks bold and counts 4 here, but those are symbols, not letters. Screen readers may spell them out one by one, and search may not match them to the word.
Markdown does not work either. calmposts escapes the characters LinkedIn would read as markup, so **bold** goes out exactly as typed, asterisks and all, and counts 8. Bullets typed as • count 1 each and display everywhere.
A post written for LinkedIn is usually longer than anything X, Bluesky or Threads take in one post. With calmposts you can still write it once: LinkedIn gets it as one post, and the networks with threads get it as a thread cut at your paragraphs, each part within that network's limit.
Short paragraphs help both sides. On LinkedIn they make the post easy to read; on the other networks each paragraph that fits a post becomes a post of its own. If LinkedIn should read differently, with more context or a different opening, customise its version in the composer and leave the others as they are.
LinkedIn has no threads. When a post in calmposts is a thread, say the same text you send to X in five parts, it goes to LinkedIn as one post: the parts joined, with a blank line between every two. The 3,000 hold for the whole.
A long text written once in calmposts goes to LinkedIn as one post too. If it is over 3,000, the composer says by how much, and you can shorten LinkedIn's version on its own without touching what the other networks get.
The counter on this page is the calmposts composer's own code, so its count is the one the composer shows and the server checks.
Each figure is computed by calmposts' counting code for LinkedIn.
| Text | What it is | Counts |
|---|---|---|
Hello | Latin letters | 5 |
Grüße | Umlauts and ß: 1 each | 5 |
你好 | Chinese: 1 each | 2 |
👍 | An emoji | 1 |
👨👩👧 | A family: still 1 | 1 |
https://example.com/a/very/long/path?with=query | A long link, in full | 47 |
calmposts.com | A bare domain | 13 |
• First point | A bullet, a space and two words | 13 |
**bold** | Markdown: the asterisks count | 8 |
𝐁𝐨𝐥𝐝 | Unicode «bold» letters | 4 |
#hashtag | A hashtag, as written | 8 |
one
two | A blank line counts 2 | 8 |
What one post takes on each network calmposts posts to, and how it is counted there.
| Network | One post | How characters count | Links | Threads |
|---|---|---|---|---|
| X | 280 characters; 25,000 with X Premium | By weight: most letters 1, emoji and CJK characters 2 | 23 each, whatever their length | A chain of replies, up to 25 posts in calmposts |
| Bluesky | 300 characters and 3,000 bytes | Graphemes: each character you see counts 1 | As written, every character | A chain of replies, up to 25 posts in calmposts |
| Threads | 500 characters | Graphemes, but an emoji counts its UTF-8 bytes | As written; at most 5 different links | A chain of replies, up to 25 posts in calmposts |
| 3,000 characters | Graphemes: each character you see counts 1 | As written, every character | None: a thread goes out as one post |
3,000 characters is room, not a target. Most of a long post sits behind «see more»; the first two lines do the work.
Mathematical letters look bold but are symbols. Screen readers may spell them out and search may miss them. A short line on its own stands out just as well.
LinkedIn does not render **bold** or _italics_. The asterisks and underscores show, and they count.
On LinkedIn a calmposts thread is one post. Six full parts of 500 characters make a fine thread on Threads, but joined they are 3,000 plus the blank lines between them, which is over.
Every character of a link counts. Trim the utm parameters you do not need.
LinkedIn refuses a post over its limit. calmposts checks first: the composer shows how many characters LinkedIn's version is over, and it is not sent until it fits.
calmposts never splits a LinkedIn post into several, because LinkedIn has no threads. Shorten the post, or give LinkedIn its own shorter version in the composer and keep the long one for the networks that take threads.
3,000 characters for the post's text. Spaces, line breaks, hashtags and links all count.
In calmposts' count, yes: each character you see counts 1, emoji included, whatever they are made of.
Yes: in calmposts every character of a link counts.
LinkedIn has no threads. calmposts sends a thread there as one post, the parts joined by blank lines, and the 3,000 count for the whole.
There is no rule, but readers see only the first lines before «see more». Many good posts are a few hundred characters; use the rest of the 3,000 when the subject needs it.
Yes, it is the composer's own code. calmposts checks every LinkedIn post with the same rule when it is saved and before it is sent.
The networks calmposts posts to, each through its official API, and what it does on each.
Flat monthly plans with a free trial, X's fees included.
Schedule posts and threads from your own code. The API checks the same limits as these tools.
Let Claude, ChatGPT or another agent draft and schedule posts for you, within the same limits.
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