SEO Tools
Bluesky Character Counter
Count Bluesky post text against the 300 grapheme limit, plus display name, bio, and image alt text. Live preview, facet inspector, and cross-platform check.
Bluesky character counter
Live Bluesky limits
Post 300 / Display name 64 / Bio 256 / Image alt text 2,000
Bluesky counts grapheme clusters (what you see is one character). URLs are not shortened, so a long link uses every character it takes.
A Bluesky post (the @app.bsky.feed.post record text field).
41 characters over the 300 character Bluesky limit.
The name shown above your handle on your profile.
51 characters left of 64.
The short bio shown under your handle on your profile.
121 characters left of 256.
The accessibility description for an image attached to a post.
1,751 characters left of 2,000.
How to use
- Type or paste your Bluesky post into the Post field. The grapheme counter updates as you type and the progress bar turns amber near the limit and red over 300.
- Fill in the Display name (64 max), Bio (256 max), and Image alt text (2,000 max) fields if you want to check those too. Set the Handle for the preview at the top right.
- Read the live Bluesky post preview on the right. Links, @handle mentions, and #hashtags are highlighted in Bluesky blue the same way the official client renders them.
- Open the AT Protocol facets panel to see each detected link, mention, or tag with its UTF-8 byte range. Use Show facets JSON to copy a ready-to-paste app.bsky.feed.post#facets array.
- Check the Cross-platform fit panel to compare the same post against X (280 weighted, with URL shortening), Mastodon (500), Threads (500), and LinkedIn (3,000) before cross-posting.
- Click Copy report for a plain-text summary, Load sample to see a worked example, or Clear all to start over.
About this tool
Bluesky Character Counter counts the post text against Bluesky's 300 grapheme limit and the display name, bio, and image alt text against their own limits (64, 256, and 2,000 graphemes). Bluesky counts the way the user sees the text: each emoji, accented letter, and CJK glyph is one character even when it takes multiple UTF-16 code units. Unlike X / Twitter, Bluesky does not shorten URLs through t.co, so a 60 character link counts as 60 characters of your 300 budget; this is the rule that catches people out the most when they move from Twitter. The post side of the tool runs a facet detector that reads links, @handle.bsky.social mentions, and #hashtags out of the text and shows the UTF-8 byte range for each one (byteStart and byteEnd), which is exactly what an official client, bot, or scheduler writes into app.bsky.feed.post#facets. Open the facets JSON panel to copy a ready-to-paste features array with the right $type for app.bsky.richtext.facet#link, app.bsky.richtext.facet#mention, and app.bsky.richtext.facet#tag, then resolve mentions to DIDs in your own pipeline. A live preview mimics the Bluesky web composer card with avatar initials, handle line, blue-highlighted facets (#1083fe), and the four action row (Reply, Repost, Like, Share), and a profile preview shows what your display name and bio look like above your feed. A cross-platform fit panel runs the same text through the Twitter weighted algorithm (so URLs collapse to 23 weighted characters and wide-range CJK characters count as 2 units), plus Mastodon (500), Threads (500), and LinkedIn (3,000), so you can decide whether to cross-post before you start. Use it when you are drafting Bluesky posts, planning a Bluesky thread, writing a longer post that touches the 300 cap, writing image alt text for accessibility, redesigning your profile, or building an app.bsky.feed.post payload by hand. Everything runs locally in your browser. The drafts you paste here are never uploaded.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Tweet Character Counter
X (Twitter) tweet counter with t.co URL weighting, CJK x2, thread split preview.
Open tool
SEOLinkedIn Character Counter
Live counters and feed preview for every LinkedIn field type.
Open tool
SEOInstagram Character Counter
Mirror every Instagram character limit with live caption, bio, search row, and follow-card previews.
Open tool
SEOTikTok Character Counter
Mirror every TikTok character limit with live previews for caption, bio, and search rows.
Open tool
SEOYouTube Character Counter
Live counters and watch page preview for every YouTube field type.
Open tool
TextSMS Character Counter
SMS counter with GSM-7 vs UCS-2 detection, segment math, and per-segment cost preview.
Open tool
TextCharacter Counter
Detailed character, letter, number, space, and line counts.
Open tool
TextTweet Thread Splitter
Numbered thread builder for X, Bluesky, Mastodon, and Threads with sentence-aware splits.
Open tool
TextHashtag Extractor
Extract hashtags, mentions, and cashtags with frequency counts and copy-ready exports.
Open tool