Skip to contentNew: share straight from DaVinci Resolve →
reelport.io

How to schedule Threads, Bluesky and Mastodon posts from one draft

Schedule Threads, Bluesky and Mastodon posts from one draft with a sourced limits table, a 300-character template and a fix list. Plan your week now.

By the reelport.io team · · Updated · 10 min read

On this page
  1. What are the limits when you schedule Threads, Bluesky and Mastodon posts?
  2. Can you schedule on each network without a tool?
  3. How does one draft count on all three?
  4. How do you adapt one post for each network?
  5. What goes wrong, and how do you fix it?
  6. What should a weekly routine look like?
  7. Where reelport.io fits
  8. Frequently asked questions

To schedule Threads, Bluesky and Mastodon posts together, write one base text of 300 characters or fewer, give each network its own version where the rules differ, and queue all three in a scheduler that holds the post until the minute. Bluesky's 300 is the tightest limit, Mastodon counts every link as 23 characters, and Threads refuses a post with more than 5 links. The rest of this page is the detail behind those three sentences, with every number linked to the platform's own documentation.

What are the limits when you schedule Threads, Bluesky and Mastodon posts?

Threads allows 500 characters, Bluesky 300, and Mastodon 500 by default, with each Mastodon server free to set its own number. The three networks also count differently: Threads counts an emoji by its bytes, Bluesky counts what a reader sees as one character, and Mastodon charges a flat 23 characters for any link.

Threads Bluesky Mastodon
Text 500 characters 300 graphemes, 3,000 bytes 500 by default, set per server
How it counts An emoji counts as its UTF-8 byte length One visible character is one, whatever its bytes A link is 23; of a mention, only the username
Links 5 or fewer per post Clickable only if the posting app marks them up Must start with http:// or https://
Images 2 to 20 in a carousel, JPEG or PNG, 8 MB each Up to 4, with alt text per image, 2,000,000 bytes each Up to 4, 16 MB each
Video MP4 or MOV, up to 5 minutes and 1 GB Verified email required, daily limit on video posts One per post, up to 99 MB
Tags One topic tag, 1 to 50 characters Marked up by the posting app Hashtags make a post findable
Posting ceiling 250 posts and 1,000 replies per 24 hours 1,666 records an hour, 11,666 a day Set by your server

Two notes on that table. The Threads link limit has been enforced since 22 December 2025: a sixth link fails the post before it is created. And a Threads carousel counts as one post against the 250.

Comparison grid: Threads 500 characters, Bluesky 300 graphemes, Mastodon 500 by default; a link counts in full on Threads and Bluesky and as 23 characters on Mastodon; up to 20, 4 and 4 images; who holds a scheduled post

The four differences that break a copy-pasted post: text length, link counting, image count and who holds the post until it publishes.

Can you schedule on each network without a tool?

Only partly. Meta announced a built-in scheduler for Threads, Mastodon servers accept a publish time through their API, and Bluesky's API creates a post the moment it receives one. None of the three will schedule the other two, so a shared calendar needs a scheduler on top.

Network Built in What that means for you
Threads Meta announced scheduling in August 2024, on the web first and with testing still to come, alongside up to 100 drafts Check whether the schedule option shows in your account; it covers Threads alone. The API has no publish-time field, so a third-party scheduler holds your post and sends it at the minute.
Mastodon The API takes a scheduled_at time that must be at least 5 minutes in the future The server itself can hold the post. Whether you see a schedule button depends on the app you use.
Bluesky The post documentation describes creating a record, with no publish time Something else has to wait and send it: a scheduler.

This matters when something goes wrong. If your scheduler holds the post, the scheduler is where you edit, cancel and see a failure. If a Mastodon server holds it, the post lives in that server's scheduled statuses list, where its time can be moved (again at least 5 minutes ahead) or the post cancelled.

How does one draft count on all three?

The same text gets three different counts, and it can pass two networks and fail the third. Here is a made-up launch post from an illustrative account. It is 346 characters long, with one emoji and a 79-character link carrying two tracking parameters.

Our overcast preset pack is out 🎬 Twelve looks for flat, grey footage, tested on three cameras and free until Sunday. Grab it here: https://example.com/presets/overcast-pack?utm_source=social&utm_campaign=launch Tell me which look you would grade with first, and I will post a before and after of the top pick on Friday. #colorgrading #filmmaking

Network Rule applied Count Limit Result
Threads The emoji counts as 4 bytes instead of 1 349 500 Fits
Bluesky Every character and the whole link count 346 300 46 over
Mastodon The 79-character link counts as 23 290 500 Fits

Bar chart of one 346-character draft: 349 of 500 on Threads, 346 of 300 on Bluesky (46 over) and 290 of 500 on Mastodon

One draft, three counts: the link that costs Mastodon 23 characters costs Bluesky all 79.

The cheapest fix is the link. Drop the tracking parameters and tighten two sentences, and the Bluesky version comes to 217 characters:

Overcast preset pack is out 🎬 Twelve looks for flat, grey footage, tested on three cameras, free until Sunday: https://example.com/presets/overcast-pack Which look would you grade with first? #colorgrading #filmmaking

The promise of a Friday follow-up moved out of the post. On Bluesky it becomes a reply under the post instead, which costs nothing against the 300.

How do you adapt one post for each network?

Write the Bluesky version first, because anything that fits 300 fits everywhere. Then add to it for Threads and Mastodon instead of cutting down from a long draft. Adding is faster than trimming, and the short version is usually the better post.

Copy this template into your notes and fill it per post:

BASE (max 300 characters, counts for Bluesky as written)
Hook, one sentence:
Detail, one sentence:
Link (short, no tracking parameters):
Question or next step:

THREADS (max 500)
= BASE
+ one topic tag (1 to 50 characters):
+ optional second detail sentence:
Check: 5 links or fewer, emoji count extra

MASTODON (your server's limit, 500 by default)
= BASE
+ 2 or 3 hashtags written in CamelCase:
+ alt text for every image:
+ content warning, if the topic calls for one:
+ visibility: public / quiet public / followers
Check: each link costs 23 characters

BLUESKY (max 300)
= BASE
+ alt text for every image:
Check: link is clickable in the preview, card attached

FOLLOW-UP (reply under the post, all three)
The sentence that did not fit:

Three habits make the template work:

  1. Keep links short. A tracking parameter is free on Mastodon and expensive on Bluesky. If you need attribution, use a short link on Bluesky and the long one elsewhere.
  2. Write alt text once. Bluesky and Mastodon both store a description per image. Write it with the base text and reuse it.
  3. Treat tags per network. Threads takes one topic tag per post. Mastodon relies on hashtags for discovery, so that is where two or three of them earn their place.

In a scheduler with a caption per channel, this is one post with three text fields. In reelport.io's composer every channel can take its own caption in place of the shared one, the Mastodon counter uses the limit read from your own server, and a caption that is too long for a channel is flagged before you schedule.

What goes wrong, and how do you fix it?

Most failures on these three networks come from five causes: length, links, timing, media and duplicates. Each has a recognisable symptom. Check the table before you rewrite the post.

Symptom Cause Fix
Bluesky refuses a post that fits elsewhere Over 300 graphemes, or over 3,000 bytes with many emoji Cut the link's parameters first, then a sentence
The Bluesky post shows a bare URL with no preview On Bluesky the posting app fetches and embeds the card; the network does not add one Use a tool that attaches link cards, and check its preview
A link or mention on Bluesky is plain text Links and mentions are annotations the posting app adds to the text Same: the tool has to mark them up
Threads fails with a link error More than 5 links counted across the text and the attachment Remove links, or move them to a reply
Threads says the text is too long at 495 characters Emoji count by byte length, so one can cost 4 or more Remove an emoji or a few words
Mastodon rejects the scheduled time It is less than 5 minutes ahead Move it out, or post now
Mastodon refuses a post your tool allowed Your server's limit differs from the default 500 Check the server's limit; use a tool that reads it
The same Mastodon post appears twice after a retry The request was sent again without an idempotency key, which servers keep for up to 1 hour Delete one; this is the tool's job to prevent
A Bluesky video will not upload The account's email is not verified, or the daily video limit is reached Verify the email in Bluesky, try again the next day
Threads posts stop going out late in the day 250 posts in a rolling 24 hours Spread the queue; a carousel counts once

A short outage on the network's side is a different case. A scheduler should retry on its own. reelport.io retries network errors, outages and rate limits after 1, 5 and 15 minutes, then shows the reason on the queue if the post still has not gone out.

What should a weekly routine look like?

Batch the writing once a week, schedule everything in one sitting, and keep ten minutes a day for replies. Text networks reward conversation, so the scheduled post is the start of the work. A routine that fits in about an hour a week:

  • Pick 5 to 7 ideas from your content calendar
  • Write each as a BASE of 300 characters or fewer
  • Add the Threads topic tag and the Mastodon hashtags
  • Write alt text for every image
  • Check each link opens, and shorten it for Bluesky
  • Give each channel its slot; avoid sending all three in the same minute if your audiences overlap
  • Park the sentence that did not fit as a follow-up reply
  • Block ten minutes each day to answer replies
  • On Friday, note which post drew the most replies on each network

If you already send the same clip or photo to Instagram and TikTok, the same idea applies there at a larger scale. Cross-posting to multiple platforms covers the media side; this page is the text side.

Where reelport.io fits

reelport.io publishes to Threads and Mastodon from the same composer as your other channels, on a posting schedule with time slots per channel (scheduling). Bluesky cannot be connected in reelport.io yet, so the Bluesky version of a post still has to go out from Bluesky itself or from another tool.

What it does on these two, as documented:

  • Threads: text, photos, videos, carousels of up to 20 and link cards, with a topic, reply controls, follow-up posts and a first reply.
  • Mastodon: any server. You enter its address and sign in there. Text, up to 4 photos with alt text or one video, visibility, a content warning, the language, follow-up posts and a first reply.

Comments from Threads and Mastodon land in the Community inbox next to your other networks. Posts are sent from servers in the EU at the scheduled minute, with your computer off. New teams start on the Free plan; what each plan includes is on the pricing page.

Frequently asked questions

Can I post exactly the same text to Threads, Bluesky and Mastodon?

Yes, if it is 300 characters or fewer including the full link, because that fits all three. You will get more from each network with small changes: one topic tag on Threads, two or three hashtags and alt text on Mastodon, and a short link on Bluesky.

How many posts a day can I schedule on each network?

Threads accepts 250 posts published through its API in a rolling 24 hours, with a carousel counting as one, plus 1,000 replies. Bluesky's limit works out at 1,666 new records an hour and 11,666 a day, which no normal posting plan reaches. On Mastodon the ceiling is set by your server, so check its rules.

How far ahead can I schedule a Mastodon post?

The Mastodon documentation sets only a minimum: the time must be at least 5 minutes in the future. It states no maximum. A third-party scheduler that holds the post itself is not bound by the 5 minutes, but your server's own rules still apply when the post arrives.

Do I need a Bluesky app password to use a scheduler?

That depends on the tool. Bluesky has two ways in: app passwords, the older method, and OAuth, where you sign in on Bluesky's own page and the tool never receives your password. Check which one a scheduler uses before you connect it.

Why does my link have a preview on Threads but not on Bluesky?

On Threads the first link in a text post becomes the link attachment when none is set. On Bluesky the preview card is built by the app that creates the post and stored with it, so a tool that skips that step publishes a bare link. Check the preview in your scheduler before you queue the post.

Can I edit a scheduled post after I have queued it?

In a scheduler that holds the post, yes, until it starts publishing. In reelport.io you can edit a post any time before that and cancel it while it is scheduled. A post held by a Mastodon server can have its time moved or be cancelled through the server's scheduled statuses.

Keep reading

No card needed14 days of Pro, free

Your next post, on every network. On time.

Private beta: join the waitlist, invited accounts start on the Free plan. 14-day Pro trial. Hosted in the EU.