Bluesky scheduling with real links, mentions and hashtags
Bluesky posts only turn links, mentions and hashtags into clickable text when the app tells it exactly where they are. Postwoo does that for you, counts the 300-character limit the way Bluesky does, shrinks large images to fit, and connects with an app password you can revoke any time.
What agencies use it for
- Text posts with clickable links, @mentions and #hashtags
- Up to four images with alt text, or a link card
- Likes, reposts, replies and quotes per post
- Follower counts tracked day by day from the moment you connect
Exactly what Bluesky allows
Live from the integration itself. Statuses move from pending verification to supported only after an end-to-end check with approved credentials.
Platform limits we enforce before you schedule
The composer checks these for every target so a post is never queued only to fail later.
- Text: up to 300 graphemes (user-perceived characters; an emoji counts as one). Links, @mentions and #hashtags become rich-text facets automatically.
- Images: up to 4 per post, uploaded directly as blobs of at most 1,000,000 bytes. Larger JPEG/PNG/WEBP/GIF files are re-encoded as JPEG and downscaled by Postwoo before upload (animated GIFs lose animation).
- A link without images becomes a link card (title/description from the post's link fields; no thumbnail). With images the URL is added to the text instead — Bluesky allows one embed per post.
- Video posts are planned (app.bsky.embed.video); attach no video for now.
- Connections use an app password created at bsky.app → Settings → Privacy and security → App passwords — never the main password.
- Rate limits (assumptions): createSession 30 per 5 minutes per account; createRecord about 1,666 per hour per account.
What the platform requires
- No developer registration or app review: any Bluesky account can connect with an app password (bsky.app → Settings → Privacy and security → App passwords). Postwoo refuses values that do not look like app passwords so the main password is never sent.
- Only the session tokens (accessJwt ~2 hours, refreshJwt ~90 days) are stored, encrypted; the app password itself is never persisted. Revoking the app password on bsky.app invalidates the connection.
- Accounts hosted on a PDS other than bsky.social can set a custom service URL when connecting (BLUESKY_SERVICE sets the default).
- AT Protocol OAuth with DPoP is the long-term connection method and is planned; app passwords are the honest interim.
- Rate limits (assumptions): createSession 30 per 5 minutes per account; createRecord about 1,666 per hour per account; Postwoo paces at 300 writes per hour per connection.
Postwoo handles the app side. You connect with an account that has the right role on the platform.
Questions, answered honestly
Do I give Postwoo my Bluesky password?
No. You create an app password in Bluesky (Settings → Privacy and security → App passwords) and paste that. Postwoo exchanges it for a session once and stores only the encrypted session. Revoking the app password disconnects Postwoo.
Why are older follower numbers missing?
Bluesky does not keep a history of follower counts. Postwoo records one snapshot per day after you connect and marks earlier days as unavailable rather than guessing.
Can I post videos to Bluesky?
Not yet. Video posts are planned; today Postwoo publishes text, links and images.
Other integrations
Google Business ProfileFacebook PagesInstagramLinkedInYouTubeTikTokThreadsPinterest
Ready to woo your clients?
Start free, connect a Google Business Profile, and see real reviews and metrics in the feed within minutes.