Bluesky Post Validator
Check your post before you publish it. See its length against Bluesky's official limits and check up to four images, all in your browser.
- Checked in your browser
- No account required
- Up to 4 images
0 / 300 graphemes0 / 3,000 bytes
Bluesky limits a post to 300 graphemes (what people see as one character, so an emoji counts once) and to 3,000 UTF-8 bytes. Both apply.
Images 0 / 4 optional
Drop images here
or
Up to 4 images · files stay on your device
Validation
This checks the limits above in your browser. It can't confirm that Bluesky will accept a post: links, mentions and hashtags aren't validated, and account state and rate limits aren't checked.
Your post and images are checked in your browser and are not uploaded by this tool.
What this validator checks
These are the limits in Bluesky's published schemas for a post record and for the images embedded in it. Two of them apply to the text, and two to the images.
- Post text: graphemesUp to 300 graphemes.
- Post text: bytesUp to 3,000 UTF-8 bytes.
- Images per postUp to 4 images.
- Image file sizeEach file up to 2,000,000 bytes (about 2 MB). The schema accepts image files of any type.
The schema also says a post's text may be empty if the post has an embed, such as an image. A post with neither text nor an image has nothing to publish.
Official rules and recommendations
This page keeps the two apart. Rules come from Bluesky's schemas. Recommendations are general good practice and are marked “Note” in the results.
- Official rule: the 300-grapheme and 3,000-byte text limits, the 4-image limit and the 2,000,000-byte image limit.
- Official structure, not a limit: every image in a post record has an alt field, but the schema does not require it to be filled in and sets no length limit for it.
- Recommendation: add alt text to every image that carries meaning, because it helps people who use screen readers. See how to add alt text on Bluesky.
- SkyyCast-specific note: SkyyCast's composer accepts JPEG, PNG and WebP images. A different image type can pass Bluesky's schema but is flagged here for that reason.
Last verified 1 October 2026 against Bluesky's official lexicon files in its public atproto repository on GitHub: app.bsky.feed.post and app.bsky.embed.images, and against the AT Protocol Lexicon specification, which defines how lengths are counted. Limits can change, so check the sources if this date is old.
What it does not check
- Links, mentions and hashtags. Bluesky stores these as separate annotations on the text. Checking them properly needs Bluesky's own detection rules, so this tool counts them as ordinary text and does not validate them.
- Image pixel dimensions and cropping. The schema sets no width or height limit, so none is checked. The dimensions shown are only for your information.
- Whether the post will go through. Account status, rate limits, moderation and how each Bluesky app displays a post are outside what a browser-only check can see.
- Other post parts. Replies, languages, tags, video, link cards and quoted posts are not checked.
How the counting works
Graphemes are counted with your browser's built-in Unicode text segmentation, so a flag, a skin-tone emoji or a letter with an accent counts once, as it does on Bluesky. Bytes are counted by encoding the text as UTF-8. Both are checked because a single emoji sequence can be one grapheme but more than twenty bytes. Unicode support differs slightly between browsers, so very new emoji can be counted differently from Bluesky's own software.
Privacy first
Your post text and images are read and measured by your own browser. They are not uploaded to SkyyCast, stored, or sent to any other service, and no account is needed. The summary you can copy contains counts only, never your post or file names. Closing or reloading the page discards everything. (Like the rest of the site, the page loads its font from Google Fonts.)
More free Bluesky tools and guides
See all free Bluesky tools, including the Bluesky Video Upload Checker. If an image is over the file limit, the Bluesky Image Size Checker can prepare a smaller copy in your browser. For the wider routine, see the pre-publish checklist for social media posts and how to schedule Bluesky posts.
About this tool
SkyyCast is an independent third-party service. It is not affiliated with, endorsed by or sponsored by Bluesky. The name “Bluesky” is used only to describe which service the tool checks posts for.
Ready to schedule the post too?
SkyyCast helps you plan and schedule Bluesky content. The Free plan includes 15 published posts a month.
See how it works
SkyyCast