Bluesky Grapheme Counter & Thread Splitter
Ensure your drafts fit the official AT Protocol limits. Automatically analyze emojis, track raw byte weight, highlight rich-text facets, and split text into sequential updates.
β‘ Quick Answer: How Graphemes are Calculated
Unlike other social platforms, the network measures text length in 300 graphemes (visual symbols) rather than raw string lengths, restricting drafts to a 3,000 UTF-8 byte limit. Emojis and accent letters count as a single unit. Additionally, URLs are counted in full.
Draft Composer
* URLs are wrapped to 23 symbols on Twitter/X
* Mastodon uses 500 graphemes; URLs are always counted as 23 symbols
ποΈ Facets Highlight Preview
Understanding AT Protocol Limits
Why graphemes and data sizes behave differently on decentralized networks.
π‘οΈ Grapheme Segmentation
In standard JavaScript, text.length counts UTF-16 code units. This means a flag emoji like πΊπΈ has a length of 4, and an emoji like π¨βπ©βπ§ has a length of 8. The network uses Intl.Segmenter to resolve visual symbols. The emoji π¨βπ©βπ§ counts as exactly 1 grapheme.
πΎ UTF-8 Byte Weight
While length is counted in graphemes, the underlying network packet of the AT Protocol limits a draft to exactly 3,000 UTF-8 weight. Normal English letters consume 1 byte each, while complex emojis and special symbols can consume up to 4 bytes of data.
π Links and URL Facets
Unlike Twitter/X which wraps links to a uniform 23 letters, this platform does not use a built-in link wrapper. The entire length of the URL text is counted against the 300 grapheme limit. Writing a 100-symbol URL leaves you with only 200 symbols for the rest of your draft.
βοΈ Smart Thread Splitter
When you compose text longer than the limit, our engine scans backward from the threshold to split the text at spaces, newlines, or sentence ends. This preserves readability and guarantees that your emojis and multi-byte symbols never break.
Frequently Asked Questions
How does the network count text length?
The platform measures draft limits in visual graphemes using the browser's native Internationalization API (Intl.Segmenter). This guarantees that accents, skin tone modifiers, and multi-symbol emojis are calculated as a single unit.
Do links count in full on the network?
Yes. Any HTTP or HTTPS link is parsed as a rich-text facet and remains fully visible in the draft text, thus counting towards the 300 symbol limit in full. Using short links or threading is recommended for long URLs.
What happens if a draft exceeds 3,000 bytes?
If your draft exceeds 3,000 UTF-8 bytes, the server will reject it even if the grapheme count is under the limit. This commonly occurs if the text contains an excessive number of emojis or foreign language letters, which take more space to store.
Is my draft content private?
Absolutely. This tool is built as an Astro static site, and all character calculations, facet parsing, and thread-splitting occur entirely inside your browser's local sandbox. No data is sent to a server.