Core concepts

How publishing works

Write once, post everywhere is a literal description of the engine. One caption plus a list of networks becomes one real API call per network — the same code path whether you use the dashboard or the API.

The fan-out

When you create a post to publish now, PostMyIsh runs the fan-out synchronously — inside the request — so the response already reflects what happened:

  1. The target list is narrowed to the networks you’ve actually connected. Unknown or unconnected ids are dropped.
  2. For each target, the account’s credentials are decrypted in memory and used to call that network’s real API.
  3. Each call has a 20-second timeout, and each network’s outcome — success with a platform post id, or a failure message — is captured independently.
  4. The post and every per-network result are written together, atomically, and the post moves to published.

One network failing doesn't sink the rest

The dispatch to each network is isolated. A failure on X doesn’t stop LinkedIn from going out — see Post lifecycle for how partial results surface.

Three delivery states

Per network, a publish attempt resolves to exactly one of:

StateWhat it means
DeliveredThe network accepted the post and returned a platform post id.
FailedThe network rejected the call; the error is recorded against that network.
Not configuredThe account is connected but has no usable credential yet, so the call is skipped — a no-op that reports zero reach.

“Not configured” is why connecting an account isn’t quite the same as being able to publish to it — the network needs a credential it can actually use. That’s covered in Connecting accounts.

Honest metrics

Publishing never invents numbers. Immediately after a post ships, its reach and engagement_rate are 0. Those fields only move once a network reports back real figures. If you see zeros right after publishing, that’s correct — not a bug.

Asynchronous networks

A few networks accept media by pulling it and finish processing after they respond — TikTok returns a publish id, YouTube processes an upload, and so on. PostMyIsh fires these correctly, but doesn’t yet poll them for a final processing status; that follow-up is on the roadmap. For those networks, published means “successfully handed off,” not “confirmed live.”

Dashboard and API share it

  • The composer and Create a post call the same publishing engine.
  • A post created in the UI is visible over the API, and vice versa — there’s one set of accounts, posts, and results behind both.