This is the publishing desk, not a text box.Source once, then adapt, approve and publish per platform.
Seven questions must be answerable at every step without clicking anything: what is being posted, where, which version each account receives, when and in which time zone, who approved it, what it may cost, and what happened.
The same seven steps, every time.
Source
Start from a brief, a file you upload, an RSS item or a request from an agent. Uploaded media keeps the provenance you gave it, including where it came from and who holds the rights. Importing a file from a URL is not built yet.
Compose once, then override
A master version drives every target. Selecting one account opens an override for that account only: its own text, media selection, settings, live limit counter and preview. Resetting an override restores the master in one action and shows you the difference first. In-app media editing is not built yet.
Validate before anything is queued
Validation is deterministic and runs on the server. It checks the platform limits from the versioned capability snapshot, the account type, alt text, media rights, duplicate and cadence rules, mention and destination resolution, and the estimated platform usage cost. Every issue names the target it belongs to and how to fix it.
Approve once
Approval is a workspace policy, not a habit. A reviewer sees every target, every variant, the time zone, the privacy state and the estimated cost on one screen, and it works on a phone. Content changed after approval requires approval again.
Schedule in a real time zone
Every scheduled post stores an instant and an IANA time zone, never a naive local time. Daylight saving transitions are shown before you confirm, not discovered afterwards.
Publish and keep the receipt
Each target is dispatched with an idempotency key. A target that fails does not roll back a target that succeeded, and that state has its own name: partially published. Each result produces an immutable receipt with the external post ID, the request identifier, the attempt history and the exact error if there was one.
Learn
Metrics are normalized, named, attributed to the platform that reported them and stamped with a freshness time. A metric a platform does not report is marked unavailable with the reason. It is never rendered as a zero.
One brief, three platform-native drafts
The same scene from the home page, scoped to what the compose step actually produces.
Master draft
Master text, shortened, plus a two post thread
Longer master text with the document attached
The same image selected, with a caption rewritten for the feed
Steps from source to receipt
Screenshot pending capture
Screenshots on this page are captured from the running product. Until a surface is complete enough to photograph honestly, we describe it in words instead of drawing a picture of it.
Screenshot pending capture
This surface is still being built. We will publish a real capture rather than an illustration.
A master version drives every target. Selecting one account opens an override for that account only: its own text, media selection, settings, live limit counter and preview. Resetting an override restores the master in one action and shows you the difference first. In-app media editing is not built yet.
The states nobody likes to design
A publishing tool is judged on the bad day, not the good one. Every one of these has a designed screen, a plain sentence and a next action.
- Partially published: which targets are live, which failed and why.
- A revoked token found at dispatch time, with the reconnect path.
- A platform rate limit, with when it resets and what is queued behind it.
- A duplicate or cadence block, with the rule that fired and the appeal path.
- Offline while composing: nothing you wrote is lost.
- An action your role does not allow, naming the role that does.
Run it on your own accounts
Starting is free, takes no card, and includes your first published posts. Connector availability is shown account by account as each platform completes its review.
Post Array costs $25 a month, or $250 a year, which is two months free. Starting is free and takes no card: connect your accounts, schedule as much as you like, and your first published posts are on us. Connector availability is shown account by account as each platform completes its review.