✍️ Text & Writing

Social Post Counter

Paste your post and the remaining length for X, Bluesky, Threads, Mastodon and Instagram lines up at a glance. No sign-up, and what you type never leaves your browser.

Examples (click to try)
0
Characters
0
Words
0
Lines
Remaining characters per network

X follows the twitter-text weight table (U+0000-U+10FF = 1, everything else = 2, each URL a fixed 23 via t.co); Bluesky counts grapheme clusters. Based on published specs as of July 2026, so a spec change may make these differ from the real counts.

How to Use the Social Post Counter

Type or paste your post into the box above. The raw character count and the remaining length against each major network's limit update live as you type β€” no submitting, no buttons.

  • Characters: counted as code points, so a single emoji like πŸ˜€ is one character while a combined emoji like πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ is counted per component.
  • Remaining: each network's limit minus the characters used. Below zero means you are over the limit.
  • X (280): follows the twitter-text weight table β€” U+0000-U+10FF (ASCII, Cyrillic, accented Latin and more) weighs 1, everything else (Japanese and other CJK) weighs 2. Each URL counts as 23 (t.co), and a combined emoji like πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ counts as one visible character (weight 2).
  • Bluesky (300): counted in grapheme clusters (what you see as one character), matching the official spec β€” πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ is one character.
  • Threads (500) / Mastodon (500) / Instagram caption (2200): counted as code points.

The same post can fit on one network and overflow on another, because the limits differ. Click the "Long post (over on X & Bluesky)" example above: the smaller limits β€” X (280) and Bluesky (300) β€” turn red and negative, while Threads (500), Mastodon (500) and Instagram (2200) still have room to spare.

When This Comes in Handy

  • Cross-posting the same text to several networks and seeing where it fits and where it overflows.
  • Checking that a post with mixed full-width text fits X's 280-character limit.
  • Drafting an Instagram caption with hashtags to stay within 2,200 characters.

Frequently Asked Questions

Is my text sent to a server?
No. The counting happens entirely in your browser. What you type is never transmitted to or stored on any server, so even private drafts stay with you.
Why is X counted differently?
X (Twitter) weighs each character instead of counting them: per the twitter-text weight table, code points in U+0000-U+10FF (ASCII, Cyrillic, accented Latin and more) weigh 1, while everything else β€” Japanese and other CJK text β€” weighs 2. Each URL counts as a fixed 23 because X shortens links with t.co. This tool mirrors the published spec as of July 2026 against the 280 limit, and counts a combined emoji such as πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ as one visible character (weight 2). Bluesky is counted in grapheme clusters, as its official spec requires. Network rules can change, so confirm the final number in each service's composer.
Why does the remaining count turn red?
Red means you are over that network's limit. The remaining count goes negative, showing roughly how many characters to trim before the post will fit. Each row shows used / limit / remaining.