Free tools

Bluesky Post Preview (Live 300-Grapheme Check)

Write your post below and watch a feed-style card mirror it live, counted against Bluesky’s 300-grapheme cap — the limit written into the AT Protocol itself. There’s no “see more” fold to outsmart here: a Bluesky post renders in full, every grapheme of it, so the card shows exactly what your followers will read. Add an image if the post needs one; it’s displayed with a local object URL in your browser and never uploaded or stored.

The card mirrors Bluesky’s real layout — the stacked bold name over your @handle, the near-black body text, link-blue hashtags, and the inset rounded image with its “ALT” badge — using our own placeholder avatar and neutral, redrawn action glyphs. It’s an independent preview, not affiliated with Bluesky.

0 / 300 characters

JPEG, PNG, or WebP, up to 20 MB. Displayed with a local object URL in your browser — never uploaded or stored.

Drawn with the Canvas API in your browser — a simplified card, not a real screenshot.

Your Name@yourhandle

Your caption appears here…

Your image

Independent Bluesky preview — not affiliated with or endorsed by Bluesky; logos belong to their owners.

Share this tool

Guide

Previewing your Bluesky post before it goes live

300 graphemes, all of them visible

Bluesky’s limit is unusual in two ways. First, it’s counted in graphemes — the visually distinct characters you actually see — not raw code points, so a multi-part family emoji counts as one, the same way you’d count it by eye. (There’s a second, rarely-hit ceiling of 3,000 raw UTF-8 bytes that only bites on extremely emoji-dense posts.) The counter under the textarea reads from the same verified limits dataset as our Bluesky character counter, so the number it enforces can’t drift from the real cap.

Second, and more important for how you write: Bluesky never folds. Unlike Instagram’s “… more” or Facebook’s “See more”, there is no truncation point to game and no hidden tail — every one of your 300 graphemes is visible real estate in the feed. That’s why this preview, like our X one, shows your full post with no “more” toggle. The whole budget works for you, so spend it deliberately.

Why the card has no “see more”

On most networks the preview’s job is to show you where the feed hides your text. On Bluesky that question doesn’t exist: the post schema sets a hard 300-grapheme maximum and renders whatever fits in full. So this card’s job is different — it’s about the read, not the fold. Does the first line earn attention on its own? Does the post stand without its image? Is the tone plain and specific, the way Bluesky culture rewards, rather than engagement-bait?

When an idea genuinely won’t fit 300 graphemes, Bluesky supports native threads well, and the first post still does the selling — so treat the opener as a self-contained unit. Hashtags work but spend the same budget as words (Bluesky has no separate hashtag cap), so each tag is expensive; most accounts use a couple of specific ones, if any. Put image detail in the alt-text field, which is far more generous, rather than burning post characters describing your picture.

From mockup to a post that ships

A quick pre-flight for Bluesky: confirm the count is under 300 graphemes, read the first line as if it were the whole post, and — if there’s an image — check the card with it in place, since the inset rounded thumbnail competes with your text for the first glance. The Download PNG button draws a simplified rendition of the card in your browser with the Canvas API — header, caption, media — handy for approvals and content calendars, and clearly a mockup rather than a real screenshot.

When the draft passes, the remaining problem is logistics. Bluesky’s 300 graphemes sit between X’s 280 and the 500 of Threads and Mastodon, so the same idea rarely cross-posts unchanged. SocialKit’s composer shows each network’s limit side by side while you write one post for all of them — so the tightest version goes to Bluesky on purpose, with the roomier version going to Threads and Mastodon untouched. Want every layout at once? The multi-platform post preview renders all of them from a single composer.

Quick questions

Does the preview show where Bluesky truncates posts?

It doesn’t need to — Bluesky never truncates. Posts render in full up to the 300-grapheme cap, with no “see more” fold, so the card shows your complete text. Bluesky has no published “visible before” cutoff because there isn’t one; the whole post is on screen.

What is the Bluesky post character limit?

300 graphemes (visual characters), defined in the AT Protocol post schema, plus a separate 3,000-byte ceiling on the raw UTF-8 text that only matters for unusually emoji-heavy posts. The counter flags any overage in red with the exact number to cut.

Do emoji and hashtags count toward the limit?

Yes. Bluesky counts graphemes, so even a complex multi-codepoint emoji counts as one — the way you’d count it by eye. Hashtags count too: Bluesky has no separate hashtag cap, so every tag spends part of your 300-grapheme budget. Put long image descriptions in the generous alt-text field instead.

Is the image I add uploaded anywhere?

No. The image renders from a local object URL directly in your browser and never leaves your device — nothing is uploaded, stored, or tracked, and it’s discarded when you close the page.

Is this an official Bluesky tool?

No. This is an independent preview tool, not affiliated with or endorsed by Bluesky; the platform’s name and logos belong to their owners. The card reproduces the feed’s layout, colors, and typography for an accurate mockup, but uses our own placeholder avatar and your supplied name, handle, and post — never a real account.

Embed this tool on your site

Free to use — paste this snippet into any page. It stays up to date automatically and links back to SocialKit.

<iframe src="https://socialk.it/embed/bluesky-post-preview" width="100%" height="760" style="border:1px solid #e5e7eb;border-radius:12px;max-width:680px" loading="lazy" title="Bluesky post preview by SocialKit"></iframe>

Looks right? Now schedule it on Bluesky and 10 more

SocialKit shows each network’s character limit while you compose one post for all 11 platforms — the caption you just previewed publishes on schedule, with over-limit drafts flagged before they fail.

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee