Agency OS
The platform that replaced Slack, Zoom, cloud storage, team monitoring, client portals and ClickUp for a 20-person agency. One typed core serving web, mobile, desktop, a Chrome extension and an MCP server, with AI reading leads, team performance and task priority on top.
- Replaced ~$1,500/mo of tools
- Outcome
- Platforms & SaaS
- Service
The context
A multi-service IT agency (SEO, marketing, development, e-commerce, IT) was paying for six products to run one business. Slack for chat, Zoom for calls, a cloud drive for files, a separate tool for team monitoring, another for client portals, and ClickUp for tasks. None of them knew about each other, so the team spent its day carrying information between them by hand. They wanted one operating system for every client engagement, reachable from web, mobile, desktop and the browser, with AI making sense of the work rather than just storing it.
What we were solving
Work was fragmented across generic SaaS tools that none of the team fully trusted, with no shared model of a 'client', a 'project' or a 'task'.
Off-the-shelf products could not express the agency's own custom fields and workflow rules without expensive per-seat add-ons.
Any future mobile app or AI automation would have to re-implement business rules, risking three copies of the logic drifting apart.
How we built it
Designed the system API-first: every capability is a REST endpoint, and the web UI, mobile app and MCP server are all just clients of that same API.
Put all business logic in a framework-free service layer of plain TypeScript. Route handlers, MCP tools and background jobs are thin adapters that build a context and call a service.
Made every input and output a Zod schema, then generated both the OpenAPI document and the typed client from that single source, so types can never drift between server and clients.
Enforced permissions inside the service layer on every call, never in the UI, so every surface inherits the same access rules for free.
Layered AI on top of the same typed core: an insights engine that scores and routes incoming leads, tracks team performance, and suggests the next action on a task, reading exactly the same data every other surface does.
Absorbed the tools they were paying for one at a time, so chat, calls, file storage, time tracking and the client portal became features of the same system instead of six separate subscriptions.
Shipped a Chrome extension for the friction points that kill time tracking: log hours against a task or file a new one from whatever tab you are already in, without breaking focus to open the app.
Why it holds up
One shared brain
Web, mobile and the AI assistant all run off the same rules, so a policy change happens once and instantly applies everywhere, instead of being fixed three separate times.
Nothing drifts out of sync
Every screen talks to the system through the same verified contract, so an update to one part can't quietly break another months later.
Permissions can't be bypassed
Access rules live in exactly one place that every surface inherits, so there's no back door through the mobile app or a future integration.
Ready for AI, not just today's app
The system already knows how to be operated by AI agents directly, so future automation doesn't mean rebuilding the platform from scratch.
Insight can't drift from the work
AI insights read the same typed core every screen does, so what the team sees and what the AI reasons over are always the same live picture.
The bill stops growing with the team
Six per-seat subscriptions used to get more expensive with every hire. Now adding someone costs nothing extra in software.
Key features
- Multi-workspace hierarchy: Spaces → Folders → Lists → Tasks → Subtasks
- A custom-field framework so the agency models its own data, not a vendor's
- Polymorphic comments and activity feeds across every entity
- Members, invites and role-based access control
- Auto-generated, always-current OpenAPI documentation
- A design system (North × Pulse) shared across surfaces
- AI insights into leads flowing in: scoring, routing and summarised intent
- AI team-performance analytics: throughput, bottlenecks and workload balance
- AI-assisted task management: auto-prioritisation and next-action suggestions
- Native apps for macOS and Windows alongside web and mobile, all on one API
- A Chrome extension for logging time against a task or adding new work without leaving the tab you are in
- Built-in chat, calls, file storage, time tracking and client portals, replacing six paid subscriptions
- An MCP server, which is the open standard that lets an AI assistant plug directly into a system. In practice it means someone can ask an assistant to create a task, update a project or pull a status report in plain language, and it happens in the platform for real
The outcome
The real win here was consolidation. Before this, a single client engagement was spread across six paid products that did not talk to each other, so the team spent its day re-entering the same information and hunting for context. Now chat, calls, files, tasks, time and the client's own portal share one set of records, and the agency stopped paying roughly $1,500 a month for the privilege of keeping them apart.