Dev.to
8/5/2026

The original title is: "Three AT Protocol behaviors that shaped my Bluesky post queue design"
Original: Three AT Protocol behaviors that shaped my Bluesky post queue design
Short summary
A detailed technical post about three AT Protocol behaviors that affect Bluesky bot post queue design: rolling-window rate limits (not calendar-anchored), two-step blob upload that can create orphaned images, and client-set createdAt that controls timeline position. The author shares concrete fixes for each issue discovered through CI log analysis, including JSONL ledger-based idempotency and timestamp handling strategies.
- •AT Protocol rate limits use a rolling 60-minute window, not a daily reset — spreading posts across the day is safer
- •Blob uploads and post creation are separate steps; failed createRecord calls leave orphaned blobs with no cleanup API
- •createdAt is client-set and controls timeline position — passing queue timestamps instead of wall-clock time causes posts to appear in the past
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



