Free tools

Bluesky Character Counter (Live Count + 2026 Limits)

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.

Bluesky limits at a glance

Bluesky character limits, last verified June 2026. Platforms change limits — over-limit behavior can vary by posting method.
FieldLimit
Post300 graphemesThe AT Protocol post schema sets maxGraphemes: 300, with a 3,000-byte UTF-8 ceiling.
Bio / profile description256 graphemes
Display name64 graphemes
Image alt textgenerous (~2,000 graphemes)Bluesky encourages detailed alt text; the protocol allows far more than the post itself.

Guide

Writing within Bluesky’s limits

Graphemes, not characters: how Bluesky counts

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.

Writing tight at 300

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.

Cross-posting around the smallest box

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.

Quick questions

What is the Bluesky character limit?

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.

Do emoji count extra on Bluesky?

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.

How long can a Bluesky bio be?

Profile descriptions allow 256 graphemes and display names 64. Image alt text is far more generous — Bluesky encourages detailed descriptions there.

Stop counting by hand — compose once for Bluesky and 10 more

SocialKit shows every network’s character limit while you write, so one draft fits all 11 platforms — scheduled from a single calendar.

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee