Platform and security
Fast where you notice. Strict where you don’t.
Agency OS holds your client relationships and your cash, so it’s built like it. Here is how, in plain language, with nothing left out because it sounded less impressive.
Agency OS
one worker · Cloudflare’s network
- pages + API
- role check on every request
- audit trail on every change
- AI and MCP tools → same API
06:00
A daily job bills due retainers, sweeps the email outbox and records the day’s numbers. It is safe to run twice.
5×
Every email goes through an outbox and a queue, retried with backoff up to five times. Each send and its outcome is visible.
30 s
Sections you opened in the last half-minute reopen instantly; every change clears that cache so you never see stale data.
0
Servers to run. The whole app is one worker on Cloudflare’s network, placed near its database automatically.
01
Access
Invite-only
There is no public sign-up page. Staff and clients are invited, and invites expire after seven days.
Roles in the data layer
One permission check guards every route and page. Members and clients are filtered in the database queries themselves.
Live session checks
Pages may trust a session cookie for a minute; every change re-reads the session from the database, so a suspended account can’t change anything.
Sign out everywhere
Suspending someone ends every session at once. People can sign out a lost laptop from their own profile.
02
Data
Exact money
Amounts are stored as whole numbers of the smallest unit. Totals and tax are computed on the server, never trusted from the browser.
Immutable records
Issued invoices, accepted proposals and approved content lock. Corrections are voids and reopens, both recorded.
An audit trail
Every change is recorded with who made it and when, including changes the AI makes on someone’s behalf.
Files with integrity
Uploads go through the app to object storage with a checksum, 25 MB each, and are internal unless you share them.
03
Public edges
Lead forms that resist spam
IP rate limiting and a honeypot field, without a captcha your prospects have to solve.
Private links
Proposal and invoice links are unguessable tokens, never indexed, and drafts are never served.
No personal data cached offline
The installable app caches static assets only. Pages and data are always fetched fresh, so a shared device never shows the last person’s data.
Separate client API
The portal has its own router and checks. A client session can’t reach a staff route at all.
04
AI and integrations
Your keys, encrypted
Model provider keys are encrypted at rest and only ever used on the server.
Confirm before acting
Outbound, financial and destructive actions stop for an explicit Approve, in the app and over MCP.
Scoped connections
MCP connects with OAuth or API keys scoped to read, write or act. Revoke them from your profile.
Off by default
AI is switched off for the organisation until an owner turns it on, and anyone can switch it off for themselves.
Questions from your IT person
Want the technical detail?
We’re happy to walk through the architecture, the permission model and the data flow on a call. Ask when you request access.