Bluesky image sizes
How Bluesky shows one image, a grid of four or a gallery of ten, the 2 MB cap, avatars and banners, read from Bluesky's own code, with a resizer that does the same maths.
Runs in your browser. Your text and images never leave it.
Updated
Network
Where it goes
- Up to 2 MB
- JPEG, PNG, WebP, GIF
- We make 4,000 px on the long edge
Drop an image here
or
JPEG, PNG, WebP or GIF. It stays on your device. Nothing's uploaded.
Your image
Your resized image shows up here.
Shape
Shown at its own shape. In feeds anything taller than 1:2 is cropped to 1:2; opened in its thread, it isn't.
Fit
Save as
Describe the image for people who can't see it. Copy it into the post with the image.
Bluesky image sizes at a glance
The lexicon is what the network accepts; the app adds its own steps (scaling, JPEG, the 2,000-character alt text cap).
| Placement | We make | Shape | File size | Formats |
|---|---|---|---|---|
| Post image | 4,000 px on the long edge | Taller than 1:2 is cropped | 2 MB | JPEG, PNG, WebP, GIF |
| Several images | 4,000 px on the long edge | Depends on the layout | 2 MB | JPEG, PNG, WebP, GIF |
| Avatar | 1000 × 1000 (our pick) | 1:1 | 1 MB | PNG, JPEG |
| Banner | 2000 × 667 | 3:1 | 1 MB | PNG, JPEG |
| Link card thumbnail | 1200 × 630 | 1200:630 | 1 MB | JPEG, PNG, WebP, GIF |
One image in a post
Each image can be up to 2 MB; it used to be 1 MB. Before it uploads, the Bluesky app scales an image to 4,000 px on the long edge and saves it as a JPEG, so a bigger file or a lossless one gains nothing. An image posted through the API keeps its own size, but the 2 MB cap still holds.
In feeds, one image shows at its own shape, except that anything taller than 1:2 is cropped to 1:2. Open the post and you see all of it. Wide images aren't cropped.
A GIF goes up as a video, one per post, so it keeps moving.
Two to ten images
Up to 4 images go in a grid, and each one is cropped to its cell. 5 to 10 go in a gallery you swipe, where every image has the same height. The gallery's record allows 20, and Bluesky asks apps to stop at 10 for now.
| Layout | Shape | What you see |
|---|---|---|
| Two images | 1:1 | Side by side, each cropped square. |
| Three images: the first | 1:1 | The first fills a square on the left. |
| Three images: the second or third | About 2:1 | Stacked on the right, each about 2:1 (a square split in two, less the gap). |
| Four images | 3:2 | A grid of two by two, each cropped to 3:2. |
| Five to ten images | 2:3 to 3:2 | A row you swipe, every image the same height. Shapes between 2:3 and 3:2 show whole; beyond that they're cropped. |
In the resizer, choose Several images, pick the layout you're posting, and run each image through it. The crop you see is the crop people get.
Avatar, banner and link cards
Avatar
A PNG or JPEG of up to 1 MB. The app crops it square and keeps up to 2,000 px. People's avatars show in a circle; feeds, lists and labelers get rounded squares. The resizer draws the circle on the preview.
Banner
A PNG or JPEG of up to 1 MB, cropped to 3:1. The app keeps up to 2,000 px, so 2000 × 667 is the most it holds on to.
Link cards
Bluesky never fetches a link card itself. The app (or whatever posts for you) builds it from the page and uploads the thumbnail, scaled to 2,000 px and under 1 MB. It shows at 1200:630, about 1.9:1, above the title.
Alt text on Bluesky
The app caps alt text at 2,000 characters and counts the way JavaScript does, so most emoji count as two. The record itself sets no limit, but 2,000 is what you'll hit in the app, and it's what the box beside the resizer counts to.
Why we make these sizes
- Post image and Several images. The Bluesky app scales images to 4,000 px on the long edge, so a bigger file gains nothing.
- Avatar. Bluesky keeps up to 2,000 px but shows avatars small. A 1,000 px square stays sharp on any screen and well under the 1 MB cap. Bluesky doesn't give this size, so it's our pick.
- Banner. The app crops banners to 3:1 and keeps up to 2,000 px, so 2000 × 667 is the largest it holds on to.
- Link card thumbnail. The app shows card images at 1200:630.
Does Shaflex check my images for Bluesky?
Yes. Shaflex checks every image you attach against Bluesky's media rules as you add it, along with the rules of the other networks the draft goes to. If a network can't take an image, the post still goes to the networks that can, with a note saying why. The image editor works inside your draft: crop to a network's size, put a screenshot in a device or on a backdrop, and blur what's private.
See how Shaflex schedules for Bluesky, how one draft goes to every network, and what the free plan includes.
Where these rules come from
Each one is from the network's own documentation, help pages or source code. We last checked them on .
- Bluesky lexicon: app.bsky.embed.images
- Bluesky social-app source: compressImage
- Bluesky lexicon: app.bsky.embed.gallery
- Bluesky social-app source: image size configs, alt text and link card constants
- Bluesky social-app source: AutoSizedImage (one image)
- Bluesky social-app source: ImageEmbed (which layout)
- Bluesky social-app source: AltTextCounterWrapper
- Bluesky social-app source: SelectMediaButton (GIFs)
- Bluesky social-app source: composer state (MAX_GALLERY_IMAGES)
- Bluesky social-app source: ImageLayoutGrid (two to four images)
- Bluesky social-app source: Gallery carousel sizing
- Bluesky lexicon: app.bsky.actor.profile
- Bluesky social-app source: UserAvatar
- Bluesky social-app source: UserBanner
- Bluesky lexicon: app.bsky.embed.external
- Bluesky social-app source: link thumbnails (imageToThumb)
- Bluesky social-app source: ExternalEmbed (link card)
More free tools
Each one runs in your browser too.
- Bluesky
Bluesky character counter
Bluesky's 300 graphemes and 3,000 bytes, measured after the app shortens your links.
Open it - Bluesky
Bluesky best time to post
Type a handle and see the days and hours that account's own posts did best, read from its public posts, in your time zone.
Open it - Image tool
Image resizer
Crop, pad and compress an image for any network and placement, right in your browser.
Open it
Questions
What's the image size limit on Bluesky?
2 MB per image. The Bluesky app also scales each image to 4,000 px on the long edge before it uploads it.
How many images can I post on Bluesky?
Up to 4 in a grid, or 5 to 10 in a gallery you swipe through.
Why is my tall image cropped on Bluesky?
In feeds, a single image taller than 1:2 is cropped to 1:2. Open the post and it shows in full.
What size is a Bluesky banner?
It's cropped to 3:1 and kept at up to 2,000 px wide, so 2000 × 667 is the largest that's kept. It has to be a PNG or JPEG under 1 MB.
Do GIFs work on Bluesky?
Yes. The app uploads an animated GIF as a video, one per post, so it keeps moving.
Write the next post once.
Shaflex fits it to Threads, X, Bluesky, Mastodon and LinkedIn, schedules it on your rhythm and brings the replies back to you.
Free plan, no card needed.



