A Bluesky scheduler that posts properly
Queue single posts or a whole chain, with the links working, the mentions resolving, and the reply rules decided before any of it goes out.
Start for freeBluesky shows a post to your followers in the order it arrives, so the hour you publish does most of the work. What catches people out is what happens to the post itself. Bluesky does not turn URLs into links for you, does not connect an @handle to an account, and does not pick up a hashtag from the text. An app has to mark all three explicitly, and most scheduling tools do not, which is why a queued post so often lands as a wall of dead grey text. sona.to marks them, so what you wrote is what publishes.
Links, mentions and hashtags that behave like links
On most networks a URL becomes clickable because the network scans your text and makes it so. Bluesky works the other way around. The posting app has to tell Bluesky exactly which stretch of text is a link, which is a mention, and which is a hashtag. If nothing does that, the post publishes with all three sitting there as plain characters. A reader can see your link. They cannot tap it.
That is the most common way a scheduled Bluesky post goes wrong, and it stays invisible until you look at the published post rather than the draft. sona.to marks each one as you compose. Links become links. Hashtags become tappable and feed into Bluesky's tag search. Mentions resolve to the account behind the handle before the post goes out, so an @name reaches the person instead of decorating the sentence.
When a handle cannot be resolved, which happens if someone moved or the account is gone, that mention publishes as plain text rather than breaking the post.
Saying more than 300 characters
A Bluesky post stops at 300 characters. The way round it is a chain: several posts, each replying to the one above, read as a single piece. Bluesky calls this a thread, and it is how anything longer than a couple of sentences gets said there.
Write the parts in one composer and sona.to publishes them as a real chain, each part replying to the previous one exactly as if you had sat there posting them by hand. Every part carries its own images and its own alt text, so each point can sit under the picture that belongs to it rather than a block of text followed by everything visual at the end.
The settings apply where they should. Labels repeat across every part, because a chain is one piece of writing and a reader dropping into the middle of it needs the same warning as someone starting at the top. Reply and quote rules apply to the chain as a whole, so you set them once.
Quoting, and being quoted
Paste the link to any Bluesky post and it embeds as a quote rather than sitting in your text as a URL. You can quote and attach your own images at the same time, in which case your media leads and the quoted post sits underneath it.
The other direction is a setting. A checkbox stops other people quoting your post at all, which matters for anything you would rather not see lifted out of context and reframed. Bluesky is unusually good at spreading a quote, and that cuts both ways.
Who is allowed to reply
Most tools give you a text box and a time. Bluesky lets you decide the shape of the conversation while you write, and the setting travels with the scheduled post.
The rules combine rather than replacing each other. Allow people you follow, people who follow you, accounts you named in the post, and the members of a list, in any combination that suits what you are posting. Paste a Bluesky list URL and its members are let in alongside the rest. Leave everything unticked and anyone can reply, which is the default. Or close replies entirely.
Closing replies is the right setting more often than people expect. An announcement that does not need a conversation under it, or a post publishing at 7am while you are asleep and not there to moderate, is exactly the post you want to have decided about in advance.
Labels, automation and the open web
Bluesky handles sensitive material with a fixed set of labels rather than free text. A post can be marked as suggestive, non-sexual nudity, adult content, or graphic media, and the network uses that to decide how it appears for each reader depending on their own moderation settings. It is a shared vocabulary rather than a note you write yourself, which is what lets it work consistently across every app that reads Bluesky.
A post can also be marked as automated, which is the honest thing to do for output that is genuinely mechanical, and a separate setting hides a post from anyone who is not logged in. Bluesky is public by default and posts are readable without an account, so that last one is what keeps something from being scraped or surfaced outside the app.
Timing on a feed that does not reorder
The Following feed is chronological. A post arrives, sits at the top for whoever is looking, and moves down as other posts arrive. Nothing puts it back in front of the people who missed it.
That makes posting time do work it does not do elsewhere. A post published into your audience's quiet hours reaches a different and usually much smaller group, and no amount of engagement afterwards pulls it back up. Discover and the custom feeds work differently, but the people who actually follow you see you in sequence or not at all.
Scheduling closes the gap between when you have something to say and when your followers are reading. Write when the thought is there, queue it for a window that works, and let it publish. Our guide to the best time to post on social media covers where those windows tend to fall.
Hashtags that do not spend your characters
Hashtags written into the text cost you the same as any other word. Five tags at the end of a post can take a tenth of the room you had for saying something.
sona.to attaches extra tags to the post record instead of the text. They still work for discovery and people still find the post through them, and they cost nothing against the limit. The post reads as a sentence rather than a sentence followed by a row of tags.
Language works on the same principle of not leaving things to a default. Every Bluesky post carries a language, which the network uses to decide who to show it to, and a tool that hardcodes English quietly narrows the audience for everything you write in anything else. Yours is set per post.
Built for Bluesky
Bluesky scheduling, answered
Yes. Bluesky does not turn text into links by itself, so the posting app has to mark them. sona.to does, which means links are tappable, hashtags feed into tag search, and mentions reach the account rather than sitting there as text.
Yes. Add as many parts as the piece needs and they publish as a connected chain, each replying to the one above. Every part can carry its own images and alt text.
Yes. Paste the post link and it embeds as a quote. You can attach your own images at the same time, and the quoted post sits below your media.
Yes. One checkbox on the post prevents others from quoting it.
Yes, and the rules combine. Pick any mix of people you follow, people who follow you, accounts mentioned in the post, and members of a list. Leave them all clear for anyone, or close replies entirely. On a chain the setting applies to the whole thing.
Yes. Extra tags attach to the post rather than the text, so they help discovery without spending any of your 300 characters.
300 characters per post. A chain is how anything longer gets published.
Whenever your followers are online. The Following feed is chronological and nothing resurfaces later, so a post reaches roughly the people reading at that moment.
Start scheduling Bluesky posts today
Free to start, no credit card required. Connect your account and queue your first post in minutes.
Get started free