Skip to content
Shaflex

Bluesky character counter

Count a post the way the Bluesky app does: 300 characters and 3,000 bytes, measured after it shortens your links. See both caps, and which one you'll hit first.

Runs in your browser. Your text and images never leave it.

Updated

Off counts links in full, as text posted through the API does.

0 / 300

300 leftcharactersBluesky: Characters as you see them: an emoji, a flag or an accented letter is one.

Type or paste a post to count it.

Characters0 / 300

Bytes (UTF-8)0 / 3,000

Characters as typed
0
Emoji
0

Two caps: characters and bytes

300 characters as you see them, and 3,000 bytes underneath.

Bluesky counts graphemes, which is a precise way of saying what you'd call one character is one. An emoji, a flag, a family emoji and an accented letter each count 1. A post can have 300 of them.

The same post also has to fit in 3,000 bytes of UTF-8. A plain English letter is 1 byte, so ordinary text runs out of characters long before it runs out of bytes. Other characters take more: an accented letter 2 bytes, a CJK character 3, a plain emoji 4, a flag 8 and a family emoji 25.

What characters cost on Bluesky
CharacterCharactersBytes
A plain letter (a)11
An accented letter (é)12
A CJK character (日)13
A plain emoji (😀)14
A flag (🇯🇵)18
A family (👨‍👩‍👧‍👦)125

So long emoji sequences are the one thing that can run the bytes out first: 120 family emoji fill all 3,000 bytes while using 120 of the 300 characters, and the post won't go. The counter shows both, and cuts to whichever runs out first.

Worked examples

On Bluesky: A link the app shortens

Our autumn menu is out 🍂 https://www.example.com/blog/2026/10/autumn-menu-is-here?utm_source=bsky

How Bluesky counts “A link the app shortens”, piece by piece
PieceWhat it isCounts
Our autumn menu is outLetters and spaces23
🍂An emoji, then a space2
https://www.example.com/blog/2026/10/autumn-menu-is-here?utm_source=bskyA 72-character link, shortened31
Bluesky counts56 of 300

With the link in full, as some tools post it, the same post is 97.

On Bluesky: Accents and emoji, one character each

Fête de la musique 🎶 🇫🇷

How Bluesky counts “Accents and emoji, one character each”, piece by piece
PieceWhat it isCounts
Fête de la musiqueLetters, an ê and spaces19
🎶An emoji, then a space2
🇫🇷A flag1
Bluesky counts22 of 300

22 characters, but 33 bytes: the ê, the emoji and the flag take more than one byte each.

When a post is over

Cut to fit keeps the longest part that fits both caps, ending at the last full sentence, the last whole word, or exactly at the limit. It never splits an emoji, a flag or a link.

Does Shaflex keep a Bluesky post under the limit for me?

Yes. Shaflex sizes the Bluesky copy of your draft to Bluesky's 300 as you write, turns a longer one into a thread, and lets you choose who can reply. You connect Bluesky with an app password, never your main one. The same draft goes to your other networks too, each copy fitted to its own limit, and they're scheduled together.

Where these rules come from

Each one is from the network's own documentation, help pages or source code. We last checked them on .

Bluesky character limit questions

What's the character limit on Bluesky?

300 characters, counted as you see them, and 3,000 bytes of UTF-8. Most posts only ever meet the 300; long runs of emoji like families can hit the bytes first.

Do links count toward Bluesky's limit?

Yes, but the app shortens each one first: the domain plus up to 13 characters of the path, then "...". Posted through the API, a link counts in full unless the tool shortens it.

Do emoji count as one character on Bluesky?

Yes, 1 each, flags and families included. They take more bytes, though: 4 for a plain emoji and 25 for a family.

Why is my Bluesky post too long when it's under 300 characters?

Either it's over 3,000 bytes, which takes a lot of long emoji, or the tool posting it counts links in full where the app would shorten them. The counter shows both readings.

Do spaces and line breaks count on Bluesky?

Yes. Each space and each line break is 1 character and 1 byte.

One draft, a copy for every network.

Write the post once in Shaflex, adjust the copy each network gets, and schedule them all together.

Free plan, no card needed.