One Draft, Five Platforms: What Actually Has to Change
A practical look at how far a single social post can travel unchanged — character caps, media rules, and the handful of fields that force a per-platform variant.
The appealing version of cross-posting is that you write once and it goes everywhere. The honest version is that you write once, and then a handful of specific fields have to change or the publish fails. Knowing which fields those are is most of the work.
Limits below are the ones that bite in day-to-day scheduling, not an exhaustive API reference. Platforms change these without much notice — treat any number here as “check before you rely on it”, and prefer failing loudly at compose time over discovering it at publish time.
The caps that force a rewrite
Character limits are the obvious constraint and the least interesting one, because they are easy to check up front. What matters is the ordering: if you draft against the most generous platform first, every other version becomes a lossy edit you make under time pressure. Draft against the tightest one and the rest are free.
The second-order problem is where the truncation lands. A cap that cuts mid-URL produces a post that looks fine in the composer and is broken in the feed. Any truncation worth shipping happens on a word boundary and never inside a link.
Draft to the tightest limit, expand for the generous ones. Going the other direction turns every publish into an edit under deadline.
A rule that has saved more posts than any validation
Media is where it actually breaks
Text limits are cheap to validate. Media is not — and media is where most failed publishes come from.
| Constraint | Usually fine everywhere | Needs a per-platform variant |
|---|---|---|
| Aspect ratio | Square and 4:5 | Anything wider than 16:9 |
| Video length | Under 60 seconds | Long-form uploads |
| Cover image | Optional | Required by some, ignored by others |
| Alt text | Supported | Silently dropped in places |
The pattern worth internalising: a platform that ignores a field is harmless, a platform that rejects on it costs you the slot. Validate for the rejecting ones, and let the rest quietly discard what they do not use.
The fields that are genuinely per-platform
After a few hundred scheduled posts, the list of things that truly cannot be shared is shorter than it first appears:
- The body text, when a cap forces it. Everything else can usually be shared verbatim.
- The first comment, where a platform treats links in the body as a reach penalty.
- The cover frame for video, because the required dimensions genuinely differ.
- The publish time, which is the one people forget — the right hour on one network is dead air on another.
Everything else — tags, alt text, link previews — can be authored once and allowed to degrade gracefully.
Scheduling is the other half
A limits checklist gets a post accepted. It does not get it published on time. Two things decide that:
Retry behaviour matters more than send-time precision. A publish that fails at 09:00 and silently never retries is worse than one that lands at 09:04. Anything scheduling on your behalf should tell you which of those happened.
And per-account times beat one global time. Posting the same draft to five accounts at the same instant optimises for the scheduler’s convenience, not the audience’s. If a tool makes you choose one time for everything, you will eventually work around it by hand — which is the thing you bought the tool to avoid.
Where this leaves you
Write to the tightest text cap. Validate media against the platforms that reject rather than ignore. Accept that four or five fields will always be per-platform and build the workflow around that instead of pretending otherwise. That is roughly the whole discipline — the rest is remembering to check the limits again next quarter.
Comments are not configured in this environment.