Bluesky has no scheduler of its own. The app posts now or not at all, so anyone who wants a post to go out at nine tomorrow needs a tool, and the tool talks to the AT Protocol, which is open and documented and has a few rules that surprise people coming from X.
How a tool connects: app passwords
A scheduler never gets your Bluesky password. In Settings, Privacy and Security, App Passwords, you create a password just for the tool, name it, and paste it once. It can be revoked on its own without touching your login, and it cannot change your account's password or email. Preflight connects this way; so do Buffer and Postiz. Bluesky also supports OAuth now, and tools are moving to it, but app passwords remain the common path in 2026.
A custom domain handle (you.example.com) works the same as a .bsky.social one.
What a post can hold
| Limit | |
|---|---|
| Text | 300 graphemes (what you see as characters), and 3,000 bytes |
| Pictures | 4 per post, up to 2 MB each after Bluesky's own resizing, alt text on each |
| Video | 1 per post, MP4, up to 100 MB and 3 minutes, no pictures in the same post |
| Links | Detected and made clickable by "facets"; a link counts its full length against the 300 |
| Mentions and hashtags | Also facets; a tool that skips them posts plain text that nobody can tap |
| Threads | A chain of replies, each under the same limits |
| Editing | Not possible; delete and post again |
| Polls | Not in the protocol |
The 300 is counted in graphemes, so a flag emoji is one, not two or four. A long caption that fits X at 280 fits Bluesky too; a caption that fits Threads at 500 does not.
The facets rule is the one that separates tools: the protocol does not detect links, mentions or hashtags itself. The tool has to mark them with byte offsets, and a tool that marks only URLs posts hashtags and @mentions as dead text. Preflight marks all three.
Scheduling it
In Preflight, a Bluesky account is one channel. Write the post once, tick Bluesky among the targets, and the composer counts 300 graphemes for Bluesky while counting 500 bytes for Threads and 2,200 characters for Instagram beside it. Pictures beyond four, or a video alongside pictures, are flagged before publishing rather than silently dropped. Threads are written in the same composer, one part per box, each part checked.
The post goes to the queue (next free slot for that channel) or to a fixed time. After publishing, Preflight reads likes, replies and reposts back and shows them with the post; Bluesky reports no views.
Comments and metrics
Replies to a post are readable and answerable from the comments inbox. Bluesky lets only the author delete a reply, so there is no "delete someone else's comment", and no "hide". Figures available through the API: likes, replies, reposts, and the account's follower count once a day.
What no tool can do on Bluesky
- Edit a published post. The protocol has no edit; every tool deletes and re-posts.
- Polls. Not in the protocol.
- Schedule inside Bluesky. There is no draft or scheduled state on the server, so the tool must be online at the moment.
Which schedulers support Bluesky
Buffer, Preflight, Postiz, PostFast, Publer, Metricool, Vista Social, Typefully, SocialBee, Hootsuite (single posts) and Blotato all post to Bluesky in 2026. Later does not. The ones that mark hashtags and mentions as facets, support threads and handle the 3,000-byte limit are fewer; test with a post containing an emoji, a hashtag and a mention before trusting one.
Questions people ask
- Can you schedule posts on Bluesky natively?
- No. The Bluesky app and website have no scheduling; the AT Protocol has no scheduled state. You need a third-party tool that posts at the time.
- What is the Bluesky character limit?
- 300 graphemes per post, and separately 3,000 bytes. A link counts its full length. Emoji count as one each.
- Is giving a scheduler an app password safe?
- An app password is scoped to posting and reading as you; it cannot change your login, email or other app passwords, and you can revoke it alone. Never paste your main password into a tool.