Social Media Character Limit Checker – Measure Once, Fit Everywhere
Writing for more than one place means writing against more than one ceiling. The same announcement has to survive a short post field, a longer caption, a profile bio, a title, a description and an alt text, and each of those counts characters its own way. A character limit checker exists so you paste the text once and see, at a glance, which of those fields it fits and which it overflows — with the overflowing part marked in the text itself rather than described in a number.
Why counters disagree with each other
Almost every naive counter reports String.length, which is UTF-16 code units. By that measure a single emoji is two characters, the family emoji 👩👩👧👦 is eleven, and a flag is two — because that one glyph is four people joined by invisible zero-width joiners, or a pair of regional indicator letters. None of those numbers is what a reader counts, and none of them is necessarily what a field charges you.
This tool computes five figures for the same text and shows them together: visible characters (grapheme clusters via Intl.Segmenter), the JavaScript length, Unicode code points, UTF-8 bytes from TextEncoder, and a weighted count you configure yourself. Visible characters is the default, and it is what every meter, every trim and the overflow marker use. Segmentation is pinned to a single locale, so the same text counts the same on every machine rather than shifting with a browser setting.
What the meters show
Each field you add gets a row: the name, the count against the limit, the headroom left or the amount over, and a bar filled proportionally. Rows sort deterministically — over-limit first, then by least headroom — so the same text always produces the same order. Status is spelled out in words and marked with an icon as well as shown in the bar, because colour alone is not something every reader can use, and each bar carries an accessible label naming the field it belongs to.
Trimming without breaking anything
When something is over, trim to fit cuts at the last grapheme boundary inside the limit, so a skin-tone modifier, a keycap or a combining accent is kept whole or removed whole — never sliced into a lone surrogate. You can retreat further to the last word boundary, and an ellipsis is paid for out of the limit rather than added on top of it, which is the mistake that quietly puts a trimmed string back over the line.
Limits are yours to enter
Every field limit is a fact about somebody else’s product, and those change without announcement. Rather than ship figures that may already be stale, this tool ships none: you add the fields you write for and type each limit from the documentation in front of you. Every value stays editable, custom fields can be named whatever you like, and the whole report exports as CSV with a formula-injection guard on every cell.
Everything here runs in your browser. There are no network requests, no uploads and no accounts, so a draft you have not published yet never leaves the machine you wrote it on. The tool reports fit against the limits you entered and nothing else — it makes no claim about what length suits a field better, because that is not something a character counter can know.