Bluesky character counter

Count your post the way Bluesky counts it and see every limit at once.

Bluesky character counter

FreeLive count
Post
0 / 300
300 left
Without spaces
0
Words
0
Bytes
0 / 3,000
Post0 / 300
Bio0 / 256
Bytes0 / 3,000
The same text on other networks
X0 / 280
LinkedIn0 / 3,000
Threads0 / 500
Mastodon0 / 500

Published

Get Started
Table of contents

Live counts for the post (300), post text bytes (3,000) and bio (256), measured the way Bluesky counts them. Everything runs in your browser; nothing you type is stored or sent anywhere.

How to use the Bluesky character counter

  1. Pick the field
    Choose what you are writing: post, post text bytes and bio. Each field has its own Bluesky limit.
  2. Type or paste
    The count updates on every keystroke, using Bluesky's own counting rules for emoji and links.
  3. Watch the limit bars
    Each bar turns amber past 90% of the limit and red when you are over, with the exact number of characters to trim.
  4. Trim and copy
    Cut until every field is under its limit, then paste into Bluesky.

Bluesky character limits in 2026

There are two ceilings at once: 300 graphemes and 3,000 UTF-8 bytes. English text never reaches the byte limit, but a post made mostly of combined emoji or non-Latin script can hit it first. The bsky.app composer shortens how a link is displayed, so it may show a lower count than a post sent through the API.

FieldLimitNote
Post300counted in graphemes
Post text bytes3,000UTF-8 bytes
Bio256-

How Bluesky counts characters

Bluesky counts graphemes, the characters you see, so an emoji or a flag counts as 1. The text must also fit 3,000 UTF-8 bytes, and links sent through the API count at full length.

When your post does not fit in 300 graphemes

Bluesky has no long-post mode, so a longer text becomes a thread of replies. Split at sentence boundaries and never inside a link, because a link sent through the API counts at its full length.

The Bluesky thread maker splits a draft into posts under 300 graphemes and 3,000 bytes, with numbering and copy buttons.

The same text on other networks

One draft gets a different number on every network, because each one counts differently. Here is how the Bluesky limit compares.

NetworkMain limitHow it counts
X280 (post)weighted: links 23, emoji 2, CJK 2
LinkedIn3,000 (post)UTF-16 code units; most emoji cost 2
Threads500 (post)UTF-16 code units; links at full length
Mastodon500 (post)links 23, emoji 1, remote mentions as @name

Finish polishing before you publish

Your post is within every limit. Now get it seen.

A post that fits is ready to publish. Real likes, reposts and replies in the first hours are what carry it further on Bluesky.

Get real likes on your post

Frequently asked questions

What is the Bluesky character limit?

300 graphemes per post, with a second cap of 3,000 UTF-8 bytes.

Do emoji count as one character on Bluesky?

Yes. Bluesky counts graphemes, so a family emoji or a flag counts as 1.

Through the API a link counts at its full length. The bsky.app composer shortens how the link is displayed, so it costs less there.

Do spaces count on Bluesky?

Yes. Every space and line break counts as one character toward the 300.

Is my text uploaded anywhere?

No. The counter runs in your browser and nothing you type leaves the tab.

More free tools

Grow on Bluesky

Upvote Club

Written by

Upvote Club

The Upvote.club team builds free social media tools and runs a community of real people who support each other’s posts on 19 social networks.