# Bluesky character counter

Paste your post and see its length the way Bluesky counts it: in graphemes, so every emoji, even a family emoji, counts as 1, and links count as Bluesky shows them.

## Why Bluesky needs its own counter

Bluesky counts graphemes, not bytes or code units. That is kinder to emoji than X or Threads: a skin-tone or family emoji counts as 1. A counter that counts code units would tell you a post is too long when Bluesky would accept it, and this page counts the way Bluesky does.

## Links on Bluesky

Bluesky apps show a link shortened to its domain and the first part of its path. The counter counts that shortened form, so pasting a long URL costs only a few characters more than the domain. Other counters charge the full URL, or 23 characters as on X, and can tell you to cut words you could have kept.

## Facts

- A Bluesky post's text is at most 300 graphemes (the app.bsky.feed.post lexicon, `maxGraphemes: 300`, checked 2026-10-21).
- The counter shortens links as Bluesky shows them: the domain plus the first 13 characters of the rest and "...", when the rest is longer than 15 characters.

## How to use

1. Type or paste your Bluesky post into the box.
2. Read the count against 300 and how many characters are left, or how far over you are.
3. Check the chips below to see which other networks the same text fits.

## FAQ

### How does Bluesky count characters?

Bluesky allows 300 graphemes per post. A grapheme is what you see as one character: a letter, a space, an accented letter or an emoji. A family emoji or a flag counts as 1, even though it is made of several code points.

### How much does a link count on Bluesky?

Bluesky shows a link shortened to its domain plus the start of the path, and the counter counts that shortened form: the domain plus up to 16 more characters. A long tracking link costs far less than its full length.

### Do line breaks count on Bluesky?

Yes. Each line break counts as 1.

### Why does my post fit on Bluesky but not on X?

X counts emoji and CJK characters as 2 and every link as 23, while Bluesky counts each grapheme as 1 and shortens links. The chips under the count show where the same text fits.

### What happens when my post is over 300?

Bluesky won't publish it. Shorten it, or split it into a thread of replies with the cross-post formatter.

### Does this page store what I type?

No. The counter runs in your browser and never sends your text anywhere.

## Related

- [Social media character counter](https://postboost.co/tools/social-media-character-counter): Free character counter for X, Threads, Bluesky, Instagram, LinkedIn, TikTok and more. Counts as each network does, live in your browser.
- [Cross-post formatter: one post, five networks, side by side](https://postboost.co/tools/cross-post-formatter): Format one post for X, Threads, Bluesky, Mastodon and LinkedIn side by side: each network's own count, link rules and thread split. Free, no signup.
- [Social media post checker: check your post before you publish](https://postboost.co/tools/social-media-post-checker): Check a post before posting: character limits, hashtags, media count, video length and see-more cut-offs for X, Instagram, LinkedIn, TikTok and more.
- [Bluesky Character Limit 2026: 300 per Post, and How Links Count](https://postboost.co/learn/bluesky-character-limit): A Bluesky post holds 300 characters, counted as graphemes. How emoji and links count, the limits for alt text, bio and video, and how to fit a thread.
- [Post editor](https://postboost.co/features/editor): Write once, adjust per account, preview it the way each network shows it and pick the format: Reel, Story, thread, offer, board or privacy.

Last verified: 2026-10-21

## Sources

- [AT Protocol lexicon app.bsky.feed.post (maxGraphemes 300)](https://github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/feed/post.json)

Canonical: https://postboost.co/tools/bluesky-character-counter
