ProductPublishing
Approved posts go outonce, with a receipt.
Publishing runs on durable workflows. Each post is checked again when it is due, retried safely when a network pushes back, and marked published only when the network confirms it. Social channels are in early access.
- post_8f2aSCHEDULED → PROCESSING → PUBLISHED
- post_91c4retry 429 → PUBLISHED, once
- post_a07eUNKNOWN_DELIVERY → held for a person
Lifecycle
Seven states.No guessing.
A scheduled post has seven states and a clear owner for each transition. Published means confirmed. Anything ambiguous goes to a person.
| State | Meaning |
|---|---|
| DRAFT | Not scheduled yet. |
| SCHEDULED | Waiting for its time. One durable workflow owns the timer and the cancel signal. |
| PROCESSING | Claimed by exactly one worker, which checks eligibility again before sending. |
| PUBLISHED | The network returned a receipt, stored with the provider post ID. |
| FAILED | A definite failure, such as an expired credential. Nothing was published. |
| CANCELLED | Cancelled by a publisher, or no longer eligible at send time. No network call. |
| UNKNOWN_DELIVERY | The outcome is uncertain. Held for a person, never blindly sent again. |
Guarantees
Exactly once,in practice.
Duplicate posts are worse than late ones. Every rule below exists to make sure a post goes out once, or not at all.
post_<id> · one workflowSurvives restarts
Each scheduled post is one durable workflow that owns its timer, its cancel signal, and its retries. A deploy or a crash does not lose it.schedule × 2 → 1 postDuplicates converge
Scheduling the same post twice converges on one delivery. The hourly recovery loop reuses the same workflow IDs, so it cannot start a second one.429 · 500 → retry → 1Safe retries
Rate limits and server errors are retried into exactly one remote post.approval · asset · workspace · destinationChecked at send time
When a post is due, the worker reloads its approval, asset revision, workspace status, and destination. Private media is signed only then, retries included.CANCELLED · no requestCancel means cancel
A cancelled post makes no network request. A creative archived after approval cancels the post instead of publishing it.state + audit + outboxNothing lost in between
Each state change commits together with its audit entry and outbox event. The outbox drains every minute, and a dead-lettered event can be replayed.
Channels
Where launches land.And what is next.
The application owns scheduling, state, idempotency, retries, and recovery. A provider owns only the final network call, behind one narrow seam.
- Early access
X
Scheduled posts with one image. Connection is set up with you.
- Early access
LinkedIn
Scheduled posts with one image. Connection is set up with you.
- Early access
Instagram
Through Instagram Login, or Facebook Login with Page selection.
- Early access
Release email
Announcements to consenting subscribers, delivered through Resend.
- Planned
Buffer and Post Bridge
More scheduling destinations behind the same delivery guarantees.
- Planned
Post analytics
Performance snapshots at the same post age, feeding the next campaign.
Connecting a social channel requires two-factor authentication. During early access each workspace is bound to its publishing organization with our help.
Release email
To people who asked.Once each.
Announcing a release by email is a product capability, not an afterthought. It gets the same durability as social posts, plus consent rules built for bulk sending.
01
Consent first, then delivery
- Only approved release documents can be announced
- An empty audience is refused, not silently accepted
- One-click unsubscribe for Gmail and Yahoo, plus a footer link
- Bounces and complaints are suppressed separately from unsubscribes
- Delivery is exactly once per address, enforced by the database
- Sends go out in paced batches of 100
Questions
Anything else? Talk to us.
Which networks can I publish to?
Can it post threads or carousels?
Can I cancel a scheduled post?
What happens if a network is down?
Is email marketing included?
Related