Bluesky · Posts

Bluesky Image Size 2026: 1200×675 px, 16:9 Specs

Bluesky post image size is 1200 × 675 pixels at a 16:9 aspect ratio, with a strict 1 MB file limit per image. Below: every spec you need, plus the AT Protocol limits and supported ratios.

Last verified:

Quick Specs

Recommended Size
1200 × 675 px
Aspect Ratio
16:9 (horizontal)
Square Option
1080 × 1080 px
Portrait Option
1080 × 1350 px
Min Resolution
480 px wide
Images per Post
Up to 4
Max File Size
1 MB (strict)
Format
JPG / PNG / WebP
Color Mode
sRGB
GIF Support
No (use video)
Alt Text
Up to 2,000 chars
Character Limit (post)
300 chars

Bluesky Image Dimensions

The recommended Bluesky image size is 1200 × 675 pixels at a 16:9 horizontal aspect ratio. The Bluesky feed shows a 16:9 preview crop of every attached image, uploading at this exact ratio guarantees nothing important gets cut off in the feed view.

Bluesky doesn't enforce a single "correct" aspect ratio; you can upload squares, portraits, or panoramas. But the feed always crops to 16:9 for the in-line preview, and full-resolution viewing requires a tap-through. Designing for the preview crop is what gets attention before users decide to tap.

Supported aspect ratios

RatioPixel SizeFeed Behavior
16:9 (horizontal)1200 × 675 pxDefault, no crop in preview
1:1 (square)1080 × 1080 pxCropped to 16:9 in feed; full square on tap
4:5 (portrait)1080 × 1350 pxHeavy crop in feed, top & bottom hidden
9:16 (vertical)1080 × 1920 pxMajor crop in feed; show only middle slice

The 1 MB File Size Limit

Bluesky enforces a strict 1 MB cap on every image upload. This is a protocol-level rule from the AT Protocol, which stores image blobs across federated servers, bigger files would balloon storage and replication costs across the network.

To stay under 1 MB without quality loss:

  • Export at exactly 1200 × 675 px, uploading 4K just wastes bytes
  • Use WebP at 80% quality, typically 30–40% smaller than JPG
  • Or JPG at 75–85% quality in sRGB
  • Strip metadata (EXIF, ICC profile), saves 50–200 KB on photos from cameras / phones
  • For graphics with text, use PNG-8 with palette instead of PNG-24

Multi-image Posts

Bluesky allows up to 4 images per post. The 1 MB limit applies to each image independently, so you can have 4 × 1 MB = up to 4 MB of imagery total per post. Layout in the feed:

  • 1 image: full-width 16:9 preview
  • 2 images: side-by-side 1:1 thumbnails
  • 3 images: one large left, two small right (stacked)
  • 4 images: 2×2 grid of square thumbnails

File Format Choice

  • WebP: best compression,30–40% smaller than JPG at the same quality. Recommended for photos.
  • JPG: universal, well-tested, slightly larger than WebP. Recommended for portability.
  • PNG: use for graphics with sharp edges, text, transparency. PNG photos almost always blow past 1 MB, convert to WebP.
  • GIF: not supported as animation, uploads as a static frame. Use video for moving content.

Alt Text, Use the Full 2,000 Characters

Bluesky's alt text limit is 2,000 characters, far more generous than Twitter's 1,000 or Instagram's. The Bluesky community has strong norms around accessibility, most regular users add alt text on every image, and posts without alt are sometimes called out.

Good alt text:

  • Describes the subject first, then context
  • Transcribes any visible text in the image word-for-word
  • Mentions visual style only when relevant (e.g. "hand-drawn diagram")
  • Avoids redundant phrasing like "image of...", start with the subject

Tips for High-Quality Bluesky Images

  • Default to 1200 × 675 (16:9) so the feed preview shows the full image uncropped
  • Export WebP at 80% quality, smallest file with no visible loss
  • Strip EXIF / ICC metadata before upload
  • Test under 1 MB, re-encoding fails on oversized files
  • Add alt text on every image, it's a community norm and accessibility win
  • Need exact 16:9 cropping? Use our X (Twitter) sizing tools, same ratio works on Bluesky.

Frequently Asked Questions

What is the best image size for a Bluesky post?

The best image size for a Bluesky post is 1200 × 675 pixels at a 16:9 horizontal aspect ratio. The feed previews images at 16:9 by default, so this matches what users see without cropping. Keep the file under 1 MB, Bluesky rejects anything larger.

Why is the Bluesky image limit only 1 MB?

Bluesky runs on the AT Protocol, which stores blobs across a federated network. The 1 MB cap keeps storage costs and replication bandwidth manageable. Hard cap, you cannot upload anything larger, regardless of dimensions.

What aspect ratios does Bluesky support?

Bluesky supports any aspect ratio, but the feed displays a 16:9 preview crop by default. Tap-through shows the full image. For the cleanest feed appearance, use 16:9 (1200 × 675), 1:1 (1080 × 1080), or 4:5 portrait (1080 × 1350).

How many images can I attach to a Bluesky post?

Up to 4 images per post. Each image is subject to the 1 MB limit independently, and they display as a 2×2 grid in the feed when there are 2 or more images. For 3 images, the layout is one large image plus two smaller ones.

Does Bluesky support GIFs?

Bluesky does not natively support animated GIFs as images, they upload as static frames. To post animation on Bluesky, convert the GIF to MP4 video and post it as a video attachment instead.

How do I get a high-quality image under 1 MB on Bluesky?

Export at exactly 1200 × 675 px (16:9), use WebP at 80% quality (smaller than JPG with same quality), or JPG at 75–80%. Avoid 4K or 2K source files, downsampling to 1200 px wide will hit 1 MB easily without visible quality loss.

What is the alt text limit on Bluesky?

Bluesky allows up to 2,000 characters of alt text per image, much more generous than Twitter or Threads. Use it: describe the visible content factually, mention text shown in the image, and aim for a screen reader user understanding the post in full.

Why does my Bluesky image upload fail?

The most common reason is exceeding the 1 MB limit. Other causes: wrong format (only JPG, PNG, WebP supported), corrupted file, or uploading from a poor connection. Re-export at 1200 × 675 with WebP at 80%, that almost always fits.