Per-channel variants
One story becomes a separate, independently editable copy per channel. A sync bar tracks whether each still matches the story or has diverged.
When you add a channel, Inklate adapts your story into a variant — a separate copy for that channel, in that channel’s format. Each variant is independently editable: change a channel’s tab and it detaches from the story, and a sync bar tracks whether it still matches the story or has drifted.
How a story becomes a variant
Adding a channel materializes its variant once, by adapting the story to the channel’s provider and format: your blocks become the post body, a media group becomes carousel slides, a bullet list becomes plain lines, rich text degrades to what the platform supports. From that moment the variant is its own copy — nothing propagates automatically. Editing the story afterward doesn’t silently rewrite a channel; it just marks the channel as out of date.
Because content is stored per channel, two channels on the same network start identical and can diverge the instant you edit one of them.
Editing a channel independently
Open a channel tab and edit its copy or swap its media freely. The moment you do, that channel is tailored — it stops following the story, and its sync bar says so (“Tailored for this channel — won’t follow the story”). This is how you write LinkedIn long-form while keeping X terse, from the same underlying idea.
Sync states
Each channel carries a lifecycle state, shown as a colored dot on its tab and named on its sync bar:
| State | Dot | Meaning |
|---|---|---|
| Synced | Grey | Unchanged since its last sync from the story. |
| Edited | Blue | You changed it after its last sync. |
| Stale | Amber | The story changed since this channel synced — re-sync to catch up. |
| Authored | Violet | Hand-crafted for this channel. |
| Fix | Red | Won’t publish as-is — repair before scheduling. |
In prose: a Synced channel still tracks the story; an Edited or Authored channel has been tailored and no longer follows it; a Stale channel is one whose story moved on since the last sync; and a Fix channel has a preflight failure that overrides its sync lineage, because a channel that can’t publish should be unmistakable even if its copy is technically in sync. An empty story keeps every channel calm rather than flagging failures you haven’t earned yet.
Re-syncing
Re-syncing re-copies from the source and discards the channel’s own changes. When a channel is Edited or Authored, the sync bar confirms first (“Reset to your story? Your edits to this tab will be lost.”) so a re-sync never quietly overwrites hand-tailored work. A Stale channel re-syncs to catch up with the story that moved on.
The Sync Copy & Assets dialog
The channel bar’s Sync button opens a dialog for copying across channels at once:
- Source — the Base story (default) or any other channel’s variant.
- Targets — for each channel, choose to copy its copy (text), its assets (media), or both.
Copying from one channel to another goes through a single normalization — the source is lifted back to a story-shaped document and then adapted to the target — so there’s one transform, not a converter per platform pair. As with the per-tab bar, the dialog overwrites its targets, and clients confirm before overwriting a channel you edited by hand.
Writing posts
Write in a rich-text editor that supports bold, italic, links, headings, and lists, plus markdown shortcuts — and see each render natively per platform.
Images and video
Attach images and video that upload directly over a presigned PUT and are validated against each channel's limits, moving through processing to ready or failed.