How X actually counts to 280
Three rules cover almost everything. Common Latin characters, digits, spaces and punctuation weigh 1. Almost everything else, including emoji, Chinese, Japanese, Korean and most special symbols, weighs 2. And every URL becomes a t.co link that costs a flat 23, whether the original was 15 characters or 200.
- "Shipped the new dashboard" = 25
- "Shipped 🚀" = 10 (the emoji costs 2)
- "Details: https://ourproduct.com/changelog/2026-07-the-really-long-slug" = 32 (9 for the text, 23 for the link)
Writing tight when it matters
The 280 limit is a feature: posts that fit in one screen get read whole. If you are constantly 40 characters over, cut the setup sentence, not the specifics. Numbers, names and outcomes are what make a post work; "I'm excited to announce that" is 28 free characters. When one idea genuinely needs more room, break it into a thread with the thread generator instead of squeezing.
Premium changes the math, not the feed
X Premium raises the limit to 25,000 characters, but the timeline still truncates around the original 280 with a "show more" link. So the first 280 remain the only characters most people will ever read. Write them like the post depends on them, because it does.
Questions
Why does X count differently from my text editor?
X weighs characters. Most Latin letters, numbers and punctuation count as 1; most other characters, including emoji, CJK and many symbols, count as 2. Every link counts as 23 regardless of its real length because X wraps it in t.co.
How long can a post on X be?
280 weighted characters for standard accounts. X Premium subscribers can write up to 25,000 characters, though only the first ~280 show in the timeline before 'show more'.
Do @mentions and hashtags count?
Yes, both count at their normal character weight. Only URLs get the special flat 23.
Is this counter exact?
It implements X's weighted ranges and t.co link flattening, which matches the official counter for normal text. A few exotic Unicode edge cases can differ by a character or two, so leave a little headroom on posts that are exactly at the limit.
Does my text leave the browser?
No. Counting happens entirely on this page; nothing is sent anywhere.