0.2.0-rc.1 Unpublished RC

Distribution infrastructure for developers, products and AI agents.

Publish to multiple social platforms through one API. Open source. Self-hosted.

Apache-2.0 Runs on your Cloudflare account HTTP API · self-hosted

Droo, the Syndroo mascot, jumping as one post fans out to three platform cards
POST /v1/posts
Authorization: Bearer $SYNDROO_API_KEY
{"content": "Shipping the 0.2.0-rc.1 candidate.",
 "platforms": ["threads", "bluesky"]}
Syndroo Worker D1 · Queues · Cron
Threads text only · mock-tested
Bluesky text only · mock-tested

Supported in the 0.2.0-rc.1 candidate

  • Threads Mock-tested
  • Bluesky Mock-tested
  • X Experimental
  • Tumblr Experimental
  • LinkedIn Experimental

Text only. Live validation pending.

Interactive demo

One request. More places to connect.

Pick a use case and watch the documented states move from accepted to published. Everything runs locally in your browser.

Droo, the Syndroo mascot, filing post cards into a blue queue bin
POST /v1/posts

Publication flow

Simulated response

Each accepted post becomes one queued publication per platform, and a worker picks it up from there.

Ready. Nothing has been sent.

    Show the status response
    GET /v1/posts/{id} Simulated query

    Selected fields - response excerpt

    Initial acceptance response
    POST /v1/posts

    Selected fields - response excerpt

    Simulated run

    Nothing is sent from this page. Request shapes follow the API reference; the tutorial covers retry-safe cross-posting.

    Use cases

    Built for the moments when one post needs three destinations

    01

    Ship a product update

    Post a release note from your pipeline, with a tighter first line for Bluesky and the longer version on Threads.

    02

    Connect your workflow

    Call the HTTP API from a CI job or internal tool, then track each publication through the API.

    03

    Give an agent a publishing endpoint

    Give an agent one authenticated HTTP call. Reuse the same Idempotency-Key and the API replays the original result.

    Infrastructure

    Cloudflare primitives, wired explicitly

    Syndroo is a Worker with three Cloudflare bindings you configure yourself, and each platform needs its own credentials before it publishes.

    D1 stores the aggregate

    One post row plus one publication row per platform. State transitions commit with the claim read, so a failed statement rolls back.

    Queues dispatch the work

    Accepted posts return 202 before any platform call, and duplicate queue messages cannot start an early retry.

    Cron finds scheduled work

    A Cron Trigger scans every 15 minutes, so a scheduled post can land up to roughly 15 minutes after the requested time.

    Publisher selection is a switch, not a guess

    Adding a platform means one adapter package and one explicit switch. Anything unconfigured returns 422 with PLATFORM_NOT_CONFIGURED.

    Ownership stays with you

    You deploy the Worker into your own Cloudflare account and choose SYNDROO_API_KEY. Platform credentials stay in your secrets.

    Idempotency keeps retries honest

    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.

    Ambiguous outcomes stay ambiguous

    A timed-out platform call is marked ambiguous and never resent automatically; you decide whether it goes out again.

    FAQ

    A few things to know

    Is 0.2.0-rc.1 released?

    No. It is prepared in the repository but not published, tagged, deployed or accepted as a release.

    Do I need a Syndroo account?

    No. You deploy the Worker to your own Cloudflare account, set your own SYNDROO_API_KEY, and add platform credentials as secrets.

    Which platforms work right now?

    Threads and Bluesky are mock-tested locally with live acceptance still pending; X, Tumblr and LinkedIn are experimental. Unconfigured platforms return PLATFORM_NOT_CONFIGURED.

    Can I publish images or video?

    No. Every installed adapter is text only, with per-platform length limits enforced before publishing.

    Is there an SDK or an MCP server?

    No. The interface is the documented HTTP API; this version ships no SDK package and no MCP server.

    What happens if a platform call fails?

    Retryable failures wait at least 60 seconds, then 120, up to three attempts; ambiguous outcomes are never retried automatically.

    Start with the quickstart

    Deploy the Worker, set your secrets, run the local migration, then send an authenticated post.

    Droo, the Syndroo mascot, smiling beside a green confirmation check