Not another client portal
The client portal and the delivery-ops tooling are commodity; most agency suites ship both. What none of them holds is the process layer underneath — the plans, decisions and records the work is actually built through. Each point is set beside those two kinds of tool, by kind rather than by name.
| onMain Agency | A client portal | A delivery-ops suite |
|---|---|---|
| The portal shows the real workA client’s roadmap, milestones and requests are drawn from the same records the team builds through, not a status re-typed by hand. | A status view a team keeps current by hand, apart from where the work happens. | Internal boards and timesheets, not built for a client to read. |
| One record, commercial and deliveryA contract’s milestones are the streams the team is building; a change request is answered where the work happens. | Billing and sign-off kept apart from the delivery work. | A second system beside the books, reconciled by hand. |
| Built for agentsEvery write path is an MCP tool call, so a coding agent plans and records through it. | A UI-first API, fitted on after the fact. | An integrations API for syncing, not shaped for an agent’s tool calls. |
| A process that does not driftPlans, decisions and requirements kept as linked per-project records; a decision names what it rests on and what would overturn it. | No decision or requirement type — notes and attachments at best. | Tasks and workflow states, not a decision tied to the plan that took it. |
| A client-safe boundaryWhat a client never sees — internal cards, correspondence, other clients — is kept out by the database itself, not a per-item setting. | Visibility toggled item by item, easy to get wrong. | Internal by default; a client reaches in on a guest seat. |
| Your clients, on your domainComing: your clients on your own verified domain, under your brand and sender — never an onMain address. | A shared sub-domain, or the vendor’s own domain. | Guest access on the vendor’s host, under the vendor’s name. |