Skip to content
Collaboration

Every client is a sealed workspace.

Workspaces per brand or client with isolation proved by 29 tests against real Postgres, six roles, one- or two-step approvals, threaded review comments, version history with a word diff and restore, and no-login client review links.

  • 14-day trial, no card
  • On Creator and above — free in the trial

Why it works this way

A workspace is a brand or a client: its own accounts, media, brand kit, voices, calendar and members. Every query goes through workspace-scoped helpers, and a read that reaches across the boundary returns 404 rather than 403 — a probe cannot even confirm the row is there.

“Covered by tests” is a phrase every vendor uses, so here is the specific version, with the file name. Twenty-nine tests in packages/core/src/services/__tests__/tenancy-isolation.db.test.ts run against a real Postgres database rather than mocks, and try to reach another workspace’s posts, approvals, media, inbox, analytics, API keys, OAuth grants, schedule slots and brand voices. Sixty-two of those attempts — one per service call — go through a single shared assertion that fails unless the answer is a 404: not a success, and not a 403, because a 403 confirms the row is there.

Roles map to how teams actually work. An Editor writes and edits but cannot publish. A Publisher ships but touches neither billing nor members. A Client approves and comments, and can do it from a link without creating an account — the link is signed with an HMAC, so it cannot be forged or edited into wider access than it was issued for.

The review loop itself is where most tools hand you back a screenshot. Approvals run in one step or two. Comments thread one level deep, so a reply to “change the second line” sits under it rather than restarting the conversation at the bottom. Every save writes a version, and version history word-diffs any past version against the current body and restores it as a new version rather than rewriting history — and it refuses to restore a post that is mid-flight to the networks, because swapping the body under the publisher is how a client gets the wrong post. Posts carry an assignee, so “who has this” is a field rather than a thread in Slack.

Every destructive or administrative action is written to an audit log with who, what and when.

Collaboration

Every client is a sealed workspace.

Workspaces per brand or client with isolation proved by 29 tests against real Postgres, six roles, one- or two-step approvals, threaded review comments, version history with a word diff and restore, and no-login client review links.

  • Twenty-nine tests against real Postgres try to reach another workspace’s data and fail — and a cross-tenant read returns 404, not 403, so a probe cannot confirm the row exists
  • Owner, Admin, Editor, Publisher, Viewer and Client roles — Editors compose but never publish
  • Client review links that need no account, signed so they cannot be forged or widened, on Creator and above

What you get

Inside workspaces & approvals

The specifics, without the marketing adjectives.
  • Real multi-tenancy

    Every query is workspace-scoped through repository helpers. Twenty-nine tests in packages/core/src/services/__tests__/tenancy-isolation.db.test.ts run against real Postgres and assert the boundary across posts, approvals, media, inbox, analytics, API keys, OAuth grants, schedule slots and brand voices — sixty-two service calls, each of which must answer 404. A cross-tenant miss is a 404, not a hint.

  • Approvals

    Optional one- or two-step flows with notifications, and comments that thread one level deep so a reply stays under the point it answers.

  • Version history

    Every save is a version. Word-diff any past version against the current body and restore it — as a new version, never by rewriting history, and never while the post is mid-publish.

  • Assignment

    A post has an assignee, so ownership of a draft is a field on the post rather than a message someone has to remember to send.

  • Client links

    No-login review pages so a client can approve, request changes or comment from a phone without onboarding. Each link is HMAC-signed, so it cannot be forged or widened.

  • Media library

    Folders, tags, search, usage tracking and rights notes — so you know where an asset came from.

  • SSO for Agency

    Google sign-in today; SAML and OIDC single sign-on coming soon on the Agency plan.

Keep going

Pairs well with

  • Repurposing engine

    Drop a YouTube link, a blog post, a PDF or an audio file. One run mines the distinct arguments inside it and expands each one into platform drafts, carousel copy, a short-video script and a Pin — all four delivered, each with one click through to the builder that finishes it.

    Read more
  • AI video studio

    Turn a script into a vertical video with AI voiceover, AI-generated scene visuals with motion, and animated captions — then edit it scene by scene and schedule it without leaving the workspace.

    Read more
  • Calendar & publishing

    Month, week, day and agenda views with drag-to-reschedule, queues and categories, evergreen recycling, and a publish pipeline built to a 99.5% success target, aiming to put a post live within 60 seconds of its slot.

    Read more

Try workspaces & approvals on your own content

Fourteen days free, no credit card, and the public API is switched on from the first minute.

No credit card · Cancel anytime · Every plan includes the API and the MCP server