Bluesky posts cap at 300 characters — technically 300 graphemes, the visual characters you actually see. This counter counts graphemes the same way the AT Protocol does, so emoji and accented characters are measured correctly.
0 / 300 characters · 0 words
300 characters left
Bluesky counts graphemes (visual characters), with a separate 3,000-byte ceiling on the raw text — emoji-heavy posts can hit the byte limit first. This counter counts graphemes.
| Field | Limit |
|---|---|
| Post | 300 graphemesThe AT Protocol post schema sets maxGraphemes: 300, with a 3,000-byte UTF-8 ceiling. |
| Bio / profile description | 256 graphemes |
| Display name | 64 graphemes |
| Image alt text | generous (~2,000 graphemes)Bluesky encourages detailed alt text; the protocol allows far more than the post itself. |
Guide
Bluesky’s limit is written into the AT Protocol itself: 300 graphemes per post, where a grapheme is one visually distinct character. A family emoji built from multiple Unicode code points counts as one grapheme on Bluesky — the same emoji can count as two or more “characters” elsewhere. There is also a second ceiling of 3,000 bytes on the raw UTF-8 text, which only matters in practice for unusually emoji-dense posts.
This counter uses grapheme segmentation, matching Bluesky’s own math, so what you see here is what the compose box will accept.
At 300 graphemes, Bluesky sits between X’s 280 and Threads’ 500 — roughly two short sentences plus a link or tag. There is no truncation fold to game: posts render in full, so the whole budget is visible real estate.
Bluesky culture rewards plain, specific writing over engagement-bait formats, and hashtags work but count toward the limit (use the toggle above to check your message without them). When an idea will not fit, native threads are well supported, and the first post still does the selling. Alt text is its own generous field, so describe images there instead of burning post characters.
If you publish to Bluesky alongside Mastodon (500 default), Threads (500), and X (280 free), Bluesky’s 300 is usually the second-tightest constraint you face — and because it counts graphemes while X counts URLs at a flat 23 characters, the same draft can pass one check and fail the other.
The practical workflow is to draft the tightest version first and expand for the roomier networks, not the reverse. SocialKit shows each connected network’s limit as you compose one post for all of them, so the Bluesky version is trimmed on purpose — with the full version going to Mastodon and Threads untouched.
300 graphemes (visual characters) per post, defined in the AT Protocol post schema, with an additional 3,000-byte ceiling on the raw UTF-8 text.
No — Bluesky counts graphemes, so even a complex multi-codepoint emoji counts as one. Only extremely emoji-heavy posts can hit the separate 3,000-byte limit before the 300-grapheme one.
Profile descriptions allow 256 graphemes and display names 64. Image alt text is far more generous — Bluesky encourages detailed descriptions there.
€0.00 due today · cancel anytime · 7-day money-back guarantee
SocialKit shows every network’s character limit while you write, so one draft fits all 11 platforms — scheduled from a single calendar.
€0.00 due today · cancel anytime · 7-day money-back guarantee