Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt

Use this file to discover all available pages before exploring further.

What it checks

For images: mimeType ∈ { image/jpeg, image/png, image/webp, image/gif }. For videos: mimeType === video/mp4. The mime is sniffed from the resolved bytes, not trusted from the file extension.

Why

The PDS (Personal Data Server) blob endpoint enforces the same allowlist. Sending HEIC, BMP, MOV, etc. produces a BlobUnsupportedMimeType error from Bluesky — opaque, async, hard to debug. We catch it locally.

Failure response

{
  "error": {
    "code": "preflight_failed",
    "rule": "bluesky.media.mime_allowed",
    "platform": "bluesky",
    "message": "Image mime type 'image/heic' is not allowed on Bluesky.",
    "remediation": "Use one of: image/jpeg, image/png, image/webp, image/gif."
  }
}

Remediation

Re-encode the asset. ImageMagick, sharp, ffmpeg — any of them. For video, ffmpeg -i input.mov -c:v libx264 -c:a aac output.mp4 produces a Bluesky-compatible mp4.