Echowide

Platforms

Cross-post to 12 platforms. Two origins tell us instantly; three more get asked.

Bluesky and Mastodon push new posts down a connection we keep open, so an echo starts before you have closed the app. Everywhere else there is no free push to subscribe to, so we ask — often after you have been active, rarely while you are quiet.

Real time · socket held open

< 1 sec

We subscribe once and the platform sends us your post as it happens. There is no interval, so there is nothing to shorten and nothing to sell you. This is on every plan, including the free one.

  • Bluesky300 chars · threads · video 3 min · instantlive
  • Mastodon500 chars · threads · instantlive

Polled · adaptive interval

seconds to minutes

No free push exists on these platforms, for anyone. We tighten the interval after a burst of activity and back off while an account is quiet, which is the honest best available. The interval is not a plan feature here either.

  • X280 chars · threads · polled
  • YouTube Shortsno text limit · video 3 min · polled
  • Twitchno text limit · video 1 min · polled
Platforms supported
13
Can be an origin
5
Held back as an origin
3
Can be a destination
12
Native threading
5

The whole table

The exact limits the rules engine works from.

These values live in one file, which the splitter, the rules engine and this page all read. When a platform moves a limit, one line changes and every part of the product moves together. A post that will not fit is stopped here, with a reason, rather than rejected out there without one.

Every supported platform with its character limit, threading support, video cap, ingestion method, role and authentication.
PlatformCharactersThreadingVideo capHow we see postsRoleSign-in
X280native chain—polledOrigin or destinationOAuth 2.0
Bluesky300native chain3 minreal timeOrigin or destinationApp password
Threads500native chain5 minheldDestination onlyOAuth 2.0
Mastodon500native chain—real timeOrigin or destinationOAuth, per instance
LinkedIn3,000single post—not readDestination onlyOAuth 2.0
Facebook63,206single post—not readDestination onlyOAuth 2.0
Instagram2,200single post15 minheldDestination onlyOAuth 2.0
YouTube Shortsno text limitsingle post3 minpolledOrigin or destinationOAuth 2.0
TikTok2,200single post10 minheldDestination onlyOAuth 2.0
Twitchno text limitsingle post1 minpolledOrigin onlyOAuth 2.0
Discord2,000single post—not readDestination onlyChannel webhook
Telegram4,096single post—not readDestination onlyBot token
Nostrno text limitnative chain—not readDestination onlyPrivate key

“Held” in the ingestion column means the adapter can read the platform and we do not use it: that API will not say whether a post was public, and the rules engine refuses to guess. “Not read” means the platform is a destination only. A dash in the video column means the platform publishes no duration cap we can enforce, so we do not invent one: the upload either succeeds or comes back with their own reason, which the ledger prints in words. Limits verified 27 August 2026 and re-checked against each platform’s own documentation before release.

Platform by platform

What each connection actually does.

X280 chars · polled
No affordable push exists since the API repricing, so X is polled. Threads are assembled as a real chain rather than truncated.
Bluesky300 chars · real time
The Jetstream firehose is a public websocket. We subscribe once and filter it, so a post reaches us in well under a second and costs nothing per account.
Threads500 chars · held
A destination, not an origin. Posting supports images and video, and long text is split into a native chain. We do not carry posts out of Threads: their read API will not tell us whether a post was public, and the rules engine refuses to guess.
Mastodon500 chars · real time
Every instance offers a streaming API. We hold one connection per instance your flows touch, not one per account, so a busy instance is cheaper for us, not dearer.
LinkedIn3,000 chars · not read
Publishing only. LinkedIn's read scopes for personal feeds are not generally available, so we do not claim to watch it.
Facebook63,206 chars · not read
Publishing to Pages. The character ceiling is enormous, which means the splitter is never the thing that stops a post here.
Instagram2,200 chars · held
Publishing needs a Business or Creator account through the Graph API. Trial reels are skipped on purpose — they are hidden from your followers, and cross-posting one defeats the reason you made it. Held back as an origin: the read API does not report who a post was addressed to, so we would be guessing.
YouTube Shortsno text limit · polled
Shorts only. The three-minute cap is YouTube's own definition of a Short, so anything longer is stopped here rather than becoming a silent upload failure.
TikTok2,200 chars · held
Publishing goes through the Content Posting API, which requires an approved app. Held back as an origin: the read API does not report who a post was addressed to, and we will not publish something we cannot confirm was public.
Twitchno text limit · polled
A source, not a destination. We take featured clips created after you switch the flow on, so enabling Echowide never republishes your back catalogue.
Nostrno text limit · not read
No company, no API key and nobody to approve us. A note is signed with your key and sent to the relays you name, and it counts as published once one accepts it. The protocol sets no character limit, so a relay that refuses an oversized note tells us why and the ledger prints its reason.

One deliberate absence

Substack is not on the list, and it is not coming soon.

Substack publishes no write API. The only way to post on your behalf is to hold your substack.sid session cookie — a credential that grants full access to your account, including your mailing list, expires without warning, and sits outside the terms you agreed to.

Storing that for hundreds of writers is a breach waiting for a bad week. Tools that support Substack today are holding exactly that. We would rather be one platform short and tell you why. If Substack ships a real API we will be on it.

Start with the one that pushes.

Bluesky needs an app password and nothing else, so it is the fastest way to see the whole mechanism work end to end. Post there, and watch the ledger fill in before you have switched tabs.