post mate · docs
Platforms

Bluesky

The AT Protocol network. App passwords, the 300-character cap, and the open ATProto trade-offs.

Bluesky publishes through the AT Protocol — the open social protocol they built. The API is the most permissive of any network we support, but the auth model is different: app passwords, not OAuth.

What you can post

TypeSupportedNotes
Text postUp to 300 characters
Single imageJPG / PNG / WebP, up to 1 MB
Carousel2-4 images
VideoMP4, up to 100 MB, 1 min
Reply chainNo depth limit, but use sparingly
Quote postPass the parent post URI in the editor
PollNot in the protocol

App password setup

Bluesky doesn't have OAuth for third-party apps yet. To connect:

  1. Go to bsky.app/settings/app-passwords.
  2. Click Add App Password, name it "Post Mate".
  3. Copy the password Bluesky shows (you only see it once).
  4. Paste it into Post Mate's Bluesky connect screen.

The app password is revocable from Bluesky's settings without touching your main password. We recommend creating a separate app password per tool you use — that way revoking one tool doesn't break the others.

Caption rules

  • Max length: 300 characters (the strictest of any network we support after X)
  • Links count as 23 characters when wrapped (same as X auto-shortening)
  • @-mentions render as clickable handles
  • Hashtags work but aren't a primary discovery mechanism on Bluesky

Media specs

Bluesky's images are tightly constrained:

  • Format: JPG, PNG, or WebP
  • Max size: 1 MB per image (not a typo — 1 MB)
  • Recommended: 1000×1000 or smaller, JPEG quality ~85

Most phone photos blow past the 1 MB cap. We auto-compress JPEGs on upload to stay under the limit while maintaining visual quality. PNG and WebP files larger than 1 MB are rejected with a clear error.

Per-post settings we expose

  • Reply restrictions — anyone, mentioned only, or no replies
  • Labels — Bluesky's content-warning tags (nudity, gore, etc.) for moderation labeling

Common rejection reasons

  • InvalidRequest: Image too large — image over 1 MB. Compress or use a smaller original.
  • AuthExpired — the app password was revoked or your account changed its main password and Bluesky cascaded the invalidation. Generate a new app password and reconnect.
  • RateLimitExceeded — Bluesky's per-account rate limit. The limits aren't documented but are generous (~hundreds of posts/day). If you hit it, wait an hour.

On this page