Bluesky Character Limit 2026: Complete Guide
The Bluesky character limit is 300 characters per post as of 2026. Built on the decentralized AT Protocol, Bluesky uses grapheme-based counting rather than simple character counting. Here is a complete breakdown.
| Content Type | Limit |
|---|---|
| Post | 300 graphemes |
| Reply | 300 graphemes |
| Display name | 64 graphemes |
| Bio/Description | 256 graphemes |
| Alt text (images) | 10,000 graphemes |
| Images per post | 4 images |
| Custom feed name | 64 graphemes |
Graphemes vs. Characters
Bluesky counts graphemes rather than characters. A grapheme is what a human perceives as a single character, regardless of how many Unicode code points make it up. For standard English text, one letter equals one grapheme, so the distinction rarely matters. Where it makes a difference is with emoji and accented characters. A complex emoji that might count as 2-4 characters on other platforms counts as one grapheme on Bluesky. This means you can generally fit slightly more expressive content within Bluesky's 300-grapheme limit than you might expect.
How Links Work on Bluesky
When you include a link in a Bluesky post, the link text that is displayed counts toward your character limit, not the URL itself. Bluesky uses "facets" -- rich text features in the AT Protocol -- to attach URLs to display text. In practice, if you paste a URL into the compose box, the full URL shows and counts. But if you use the API or a third-party tool that supports facets, you can create linked text that takes up fewer characters. Bluesky also generates link card previews for URLs, showing the page title and description without counting them toward your limit.
300 Characters vs. Other Platforms
Bluesky's 300-grapheme limit is the most restrictive among the major platforms after X (280 characters for free users). Threads offers 500 characters, LinkedIn gives you 3,000, and Instagram allows 2,200 for captions. The tight limit keeps Bluesky content concise and fast to consume, similar to early Twitter's ethos before character limits were expanded.
Tips for Writing Within 300 Graphemes
- Be direct. 300 graphemes leaves no room for preamble. Start with your point, not a setup.
- Use thread posts for longer ideas. Bluesky supports threaded replies just like X. Break longer thoughts into a series of connected posts.
- Leverage link cards. Post a URL and let Bluesky's card preview provide the context, then use your 300 characters for commentary rather than description.
- One emoji = one grapheme. Unlike other platforms where emoji can cost 2+ characters, Bluesky's grapheme counting means emoji are more space-efficient.
Bluesky API (AT Protocol) Limits
Posting through the AT Protocol API enforces the same 300-grapheme limit. The API uses the createRecord endpoint for posts, and records exceeding the grapheme limit will be rejected. The AT Protocol's open nature means any scheduling tool can integrate with Bluesky without requiring special API access or approval -- a significant advantage over platforms with gated APIs.
How Kleo Handles Bluesky Character Limits
Kleo uses grapheme-based counting to match Bluesky's exact limit calculation. When generating posts or cross-posting from longer platforms, Kleo adapts your content to fit within 300 graphemes while preserving the key message. The AI understands Bluesky's concise format and generates posts that are punchy and complete within the limit.
Post to Bluesky with Kleo
AI-optimized posts for every platform including Bluesky. $49/mo flat.
Get Started with Kleo