Ship a product update
Post a release note from your pipeline, with a tighter first line for Bluesky and the longer version on Threads.
Publish to multiple social platforms through one API. Open source. Self-hosted.
Apache-2.0 Runs on your Cloudflare account HTTP API · self-hosted
Supported in the 0.2.0-rc.1 candidate
Text only. Live validation pending.
Pick a use case and watch the documented states move from accepted to published. Everything runs locally in your browser.
Each accepted post becomes one queued publication per platform, and a worker picks it up from there.
Ready. Nothing has been sent.
Selected fields - response excerpt
Selected fields - response excerpt
Nothing is sent from this page. Request shapes follow the API reference; the tutorial covers retry-safe cross-posting.
Post a release note from your pipeline, with a tighter first line for Bluesky and the longer version on Threads.
Call the HTTP API from a CI job or internal tool, then track each publication through the API.
Give an agent one authenticated HTTP call. Reuse the same
Idempotency-Key and the API replays the original result.
Syndroo is a Worker with three Cloudflare bindings you configure yourself, and each platform needs its own credentials before it publishes.
One post row plus one publication row per platform. State transitions commit with the claim read, so a failed statement rolls back.
Accepted posts return 202 before any platform call, and duplicate queue messages cannot start
an early retry.
A Cron Trigger scans every 15 minutes, so a scheduled post can land up to roughly 15 minutes after the requested time.
Adding a platform means one adapter package and one explicit switch. Anything unconfigured returns
422 with PLATFORM_NOT_CONFIGURED.
You deploy the Worker into your own Cloudflare account and choose SYNDROO_API_KEY. Platform
credentials stay in your secrets.
An optional Idempotency-Key ties one key to one logical post: a replay returns the original
result, while the same key with different content returns 409.
A timed-out platform call is marked ambiguous and never resent automatically; you decide whether it goes out again.
No. It is prepared in the repository but not published, tagged, deployed or accepted as a release.
No. You deploy the Worker to your own Cloudflare account, set your own
SYNDROO_API_KEY, and add platform credentials as secrets.
Threads and Bluesky are mock-tested locally with live acceptance still pending; X, Tumblr and LinkedIn are
experimental. Unconfigured platforms return PLATFORM_NOT_CONFIGURED.
No. Every installed adapter is text only, with per-platform length limits enforced before publishing.
No. The interface is the documented HTTP API; this version ships no SDK package and no MCP server.
Retryable failures wait at least 60 seconds, then 120, up to three attempts; ambiguous outcomes are never retried automatically.
Deploy the Worker, set your secrets, run the local migration, then send an authenticated post.