Bluesky limits each post to 300 characters. This is shorter than the 500-character limit on X and much shorter than Threads or Mastodon. The limit affects how you write replies, share links, and compose threads. This article explains the current character limit, how it works, and what happens when you paste long text or images.
Key Takeaways: Bluesky Post Length Rules
- 300-character hard limit: The app does not allow posting text longer than 300 characters, including spaces and punctuation.
- URLs count as 23 characters: Bluesky shortens pasted URLs to 23 characters regardless of the original link length.
- Image alt text is separate: Alt text for images has its own 1000-character limit and does not count toward the post character limit.
How the 300-Character Limit Works on Bluesky
Bluesky uses a flat 300-character limit for every post. This includes letters, numbers, spaces, punctuation, and emoji. Each emoji counts as 2 characters because of how the platform encodes Unicode symbols. The limit applies to all post types: original posts, replies, quote posts, and reposts with text. You cannot post a message longer than 300 characters even if you paste text from another source.
URL Handling and Character Counting
When you paste a URL into a Bluesky post, the platform automatically shortens the link to exactly 23 characters. This is a fixed value. A short link like bsky.app and a long link like https://bsky.app/profile/did:plc:abc123def456 both count as 23 characters. This rule prevents long URLs from consuming most of your character budget. If you paste a link that is already shorter than 23 characters, Bluesky still counts it as 23 characters.
Image and Media Limitations
Bluesky allows up to four images per post. Images do not consume any characters in the post body. However, each image requires alt text for accessibility. Alt text has a separate 1000-character limit and does not reduce the 300 characters available for the post text. Videos are not currently supported in posts. If you attach an image without alt text, the post still abides by the 300-character limit for the text portion only.
How to Check and Stay Within the Character Limit
Bluesky shows a live character counter below the compose box. The counter displays the number of characters used and the number remaining. When you reach 300 characters, the counter turns red and the Post button becomes inactive. You cannot submit the post until you delete enough characters. The app does not allow you to send a draft over the limit.
- Open the compose box
Tap the feather icon in the top-right corner of the Bluesky web or mobile app. A new post composer window appears. - Type your message
Enter text into the main text area. The character counter appears below the box on the right side. It shows the number of characters you have typed. - Check the counter before posting
When the counter shows a number in black, you are within the limit. When it turns red and shows a negative number, you have exceeded 300 characters. Delete text until the counter shows a positive number. - Use a thread for longer content
If your message exceeds 300 characters, tap the chain icon to create a new post in the same thread. Each post in the thread has its own 300-character limit.
Common Mistakes and Workarounds
Pasting Long Text Causes the Post Button to Stay Gray
Many users paste text from a document or website and find the Post button is gray. This happens because the pasted text exceeds 300 characters. Bluesky does not truncate the text or warn you. You must manually delete characters until the counter shows a valid number. Copying text from a source with line breaks may also add extra characters from spaces and returns.
Emoji Counts Differently Than Expected
Each emoji counts as 2 characters on Bluesky. A single emoji reduces your available space by 2 instead of 1. If you use multiple emoji, subtract 2 for each one. For example, a post with three emoji consumes 6 characters just for the emoji. This is different from platforms like X, where emoji count as 2 characters as well. There is no way to change this encoding behavior.
Threading Is the Only Way to Post Longer Content
Bluesky does not offer a long-form post feature. The only way to write more than 300 characters is to split your message into a thread. Tap the plus icon next to the Post button to add a new post to the thread. Each post in the thread has its own 300-character limit. Readers see the thread as a connected sequence. There is no character limit on the thread as a whole, only on each individual post.
Bluesky Character Limit Compared to Other Platforms
| Platform | Character Limit per Post | URL Shortening |
|---|---|---|
| Bluesky | 300 characters | URLs count as 23 characters |
| X | 500 characters (subscribers), 280 characters (free) | URLs count as 23 characters for free accounts |
| Threads | 500 characters | URLs count as full length |
| Mastodon | 500 characters (default, configurable by instance admin) | URLs count as 23 characters |
Bluesky has the shortest default character limit among major social platforms. Threads and Mastodon both allow 500 characters per post. X offers 500 characters for paid subscribers and 280 for free users. Bluesky compensates with a simple threading system that is easy to use. If you regularly write long posts, you may find Bluesky restrictive. Using threads or external content-sharing tools like Pastebin can help.
If You Need More Than 300 Characters
Bluesky does not currently plan to increase the character limit. The platform prioritizes concise, fast-moving conversations. If you need to share a long document, consider posting a summary and linking to an external site. You can also use the alt text field for images to include additional context, since alt text has a 1000-character limit. Remember that alt text is not visible in the main feed; users must click the image to read it.
You can now compose posts within Bluesky’s 300-character limit with confidence. Use the character counter to verify your post length before publishing. For longer content, create a thread by adding multiple posts. The alt text field for images offers an extra 1000 characters for accessibility details that do not count toward your post limit.