Social Character Counter
Paste a draft once and see it checked against X, Bluesky, Threads, Mastodon, Instagram, TikTok, LinkedIn, YouTube and Facebook limits — emoji counted as one.
Writing one post for five networks means five different ceilings, and the counter built into each app only tells you about its own. This tool counts your draft a single time and shows the result against eleven platform limits side by side, so you can see at a glance that a post fits Bluesky but overruns X. It counts the way a reader sees text: a family emoji or a flag is one character, not four or five. Nothing is uploaded — the count happens in your browser as you type.
What is a social character counter?
A social character counter measures the length of a draft post and compares it against the maximum each platform accepts. Instead of pasting your text into X, then Threads, then LinkedIn to find out where it gets cut, you enter it once and read every verdict together. This one covers X/Twitter at 280, Bluesky at 300, Threads, Mastodon and Pinterest at 500, YouTube titles at 100, Instagram and TikTok captions at 2200, LinkedIn posts at 3000, YouTube descriptions at 5000 and Facebook posts at 63206.
How the character counter works
The draft is counted once as grapheme clusters — the units a reader perceives as single characters — using Intl.Segmenter with grapheme granularity, which implements Unicode Annex #29. That matters because a family emoji or a flag is several code points but one visible character, and counting with string.length would report 7 or 11 where a human sees 1. The single count is then compared against each platform's published limit and the remainder is shown per network. Two caveats are deliberate: X replaces every link with a fixed 23-character t.co cost and weights some scripts double, and Instagram counts hashtags toward the caption limit, so treat those two numbers as close estimates rather than the platform's own count.
Features
How to use the social character counter
Type or paste your draft post into the text box.
Read the status line for an immediate verdict on whether the draft fits.
Scan the per-platform breakdown to see which limits you are under and which you have blown past.
Trim or expand the text and watch the character, word and line metrics update as you edit.
Common mistakes
Examples
See also
- Word Counter — Writing to a word target rather than a character limit? Count words instead.
- Headline Checker — Once the post fits, check whether the opening line actually earns the click.
FAQ
Why does my emoji count as one character here but more elsewhere?
This counter segments text into grapheme clusters — the units a reader perceives as single characters — using Intl.Segmenter. A family emoji is assembled from several code points joined together, so a naive counter reports 7 where a reader sees 1. Platforms and editors that count UTF-16 code units or code points will give you the larger number.
Does the count match X exactly?
Not always. X counts every link as a fixed 23 characters after wrapping it in t.co, regardless of how long the original URL is, and it counts characters in some scripts as 2. A link-heavy or non-Latin post can therefore differ from the number shown here, so treat the X row as a close guide rather than a byte-exact verdict.
Which platform limits are covered?
Eleven: X/Twitter 280, Bluesky 300, Threads 500, Mastodon 500, Pinterest 500, YouTube title 100, Instagram caption 2200, TikTok caption 2200, LinkedIn post 3000, YouTube description 5000 and Facebook post 63206. All eleven are evaluated from the same single count of your draft.
Is my draft sent to a server?
No. The counting runs entirely in your browser using the built-in Intl.Segmenter API, so the text never leaves your device. You can safely paste unpublished announcements or client drafts.