Word and character counter that shows every counting rule side by side, plus X, Instagram, YouTube and SMS limits.
- 35,000automated tests
- 1character per emoji like 👨👩👧
- On devicetext never leaves it
Try it here
Loading
The counts below come from the same counting files Kankan runs. Change how a line break counts and watch the totals move.
Paste your text and eight numbers update at once
- Paste your textType, paste or press ‘Try a sample text’, and ‘Words’ and ‘Characters’ change as you write.
- Read the six figures belowUnder them, ‘Without spaces’, ‘Words’ (Unicode rules), ‘Sentences’, ‘Paragraphs’, ‘Reading time’ and ‘Reading aloud’ follow along.
- Match the line-break ruleOpen ‘Line breaks count as 1’ with ‘change’ and pick ‘0’, ‘1’ or ‘2’ to match the form you are filling in.
- Set a goalPress ‘Set a goal’, enter a number and choose ‘Words’, ‘Characters’ or ‘Without spaces’ to see how many are left or over.
It can also
What it checks and discloses
The counting code is covered by about 35,000 automated tests, with expected values taken from Python's codecs and Unicode libraries, the twitter-text package and three independent SMS calculators.
A YouTube description holds 5,000 bytes, not 5,000 characters
Rules and sources
- One character
- Each character you see counts once, even if it is built from several pieces, like an emoji with a skin tone.Unicode Standard Annex UAX #29 (the browser’s Intl.Segmenter)
- UTF-8 bytes
- 1 byte for ASCII, 2 for most accented Latin letters, 3 for Korean, Chinese and Japanese, and 4 for most emoji, with no byte-order mark counted.RFC 3629: UTF-8
- X posts
- 280, but Chinese, Japanese and Korean characters and emoji count as 2 and any link counts as 23; the tests compare results with X’s own twitter‑text 3.1.0.X documentation: Counting characters · Checked Oct 10, 2026
- YouTube descriptions
- The limit is counted in UTF-8 bytes, so accented letters and emoji use up more than one each.YouTube Data API: videos · Checked Oct 10, 2026
- Bluesky posts
- 300 characters as you see them (one emoji counts as one) and 3,000 UTF-8 bytes both apply, and the row is marked over if either one is passed.Bluesky post lexicon (app.bsky.feed.post) · Checked Oct 10, 2026
For the 6 limits whose documentation does not say what is counted, Kankan counts the way JavaScript does (most emoji as 2) and marks them ‘unit not documented’.
3 guides
Social media limits are rechecked every six months
Fixed counts showing 0 when you came back to a page with your text still in the box.
Number boxes now flag anything that is not a whole number instead of quietly reading it another way.
The line-break rule and your goal are now kept until you close the tab.
Kankan first went online.

