Bluesky
Schedule Bluesky posts properly. Which starts with counting to 300 correctly.
Bluesky counts graphemes, not code units. Almost every scheduler counts the wrong thing, which means a post with a family emoji or a flag looks like it has blown a 300-character budget it has not. Postonus counts the way Bluesky counts.
Connect with an app password.
Graphemes, and why it matters
A grapheme is what a person would call one character. Under the hood it can be several code units:
| You type | Graphemes | What String.length says |
|---|---|---|
| a | 1 | 1 |
| an accented e | 1 | 1 or 2 |
| a flag emoji | 1 | 4 |
| a family emoji | 1 | up to 11 |
Bluesky's 300 limit is in graphemes. So a post ending in three emoji costs 3 of your budget, and a tool counting code units might charge you 20 and refuse to let you schedule.
This is a small thing that shows up constantly, because emoji are normal on Bluesky. Postonus counts graphemes for Bluesky specifically, and code units where that is what the platform actually enforces.
Connecting with an app password
Bluesky does not use an OAuth redirect for this. You generate an app password in Bluesky's settings and paste it in, so the connection flow is a form rather than a browser hop.
Two practical consequences: it works fine on a machine with no browser, and revoking is done at Bluesky's end, which cuts access immediately regardless of what Postonus thinks.
Use a dedicated app password for Postonus rather than reusing one. Revoking it then affects nothing else you have connected.
Images, not video
Bluesky posts through Postonus carry images and GIFs. The table above is rendered from the same rules the publish worker enforces, so if it says a media type is unsupported, that is what will actually happen rather than a stale documentation claim.
Found this useful? Pass it on.
Limits
What Bluesky allows in one post. The composer enforces these while you type.
- Characters per post
- 300 graphemes
- Media per post
- 4
- Media types
- image, gif
- First comment
- Not supported by the platform
Read from the same rules the composer and the publish workers use, so this table cannot drift from what actually publishes.
Questions
Frequently asked questions Everything the first evaluation usually needs.
- How do I connect a Bluesky account?
With an app password, generated in your Bluesky settings, rather than an OAuth redirect. Bluesky issues its own credentials, so Postonus gives you a form instead of a browser hop. Revoke the app password at Bluesky to cut access instantly.
- Why does the character count differ from other tools?
Bluesky measures in graphemes. A flag emoji is one grapheme but up to eleven UTF-16 code units, so a counter using string length can tell you a valid post is too long. Postonus counts graphemes, matching what Bluesky enforces.
- Can I post video to Bluesky?
Not through Postonus. Bluesky posts here take images and GIFs. The limits table above is generated from the rules the publisher actually uses, so it reflects what will go out.
- Can I cross-post from X to Bluesky automatically?
You can, but a 280-character X post rarely reads well squeezed into 300 graphemes verbatim. Auto-repurposing reshapes the post for the destination rather than copying it, which is usually the better result.
- Does Bluesky support a first comment?
No. First comments are an Instagram, Facebook, LinkedIn, and Threads feature.
Keep reading
- X (Twitter) schedulerSchedule X posts and threads, with URLs counted the way X counts them and a per-plan cap that reflects what X actually charges for API access.Read
- Threads schedulerSchedule Threads posts with a first comment queued alongside, so links land under the post instead of crowding the 500-character caption meant for your idea.Read
- Auto-repurposePoint a Growth Autopilot at a platform you already win on and a channel you want to grow. Postonus mines your top posts and drips reshaped drafts in for review.Read