About the Project
ClientOps was inspired by a common problem for freelancers and small agencies: client work is scattered across task lists, email, spreadsheets, invoices, and notes. This makes it easy to miss follow-ups, lose track of delivery work, or delay billing.
I built ClientOps as an agent-native client-work command center. It brings projects, tasks, invoice drafts, and follow-ups into one workspace that both humans and AI agents can use. Through WebMCP, an agent can retrieve a workspace briefing, create work items, update task status, and prepare invoice or follow-up drafts.
The app was built with a lightweight HTML, CSS, and JavaScript frontend, Supabase REST persistence, and Vercel deployment. WebMCP tools are registered with document.modelContext.registerTool() and include structured JSON schemas so agents can interact with the app reliably.
A core design principle is human approval. Agents can prepare an invoice or message, but they cannot send it or charge a client automatically. This keeps automation useful without giving it unsafe control over financial or external actions.
While building the project, I learned how to design AI- facing tool schemas, expose browser actions through WebMCP, persist frontend state to a hosted database, and create safe human-in-the-loop workflows.
The main challenges were working with an evolving WebMCP API, supporting browsers where WebMCP is unavailable, and deciding which actions should be automated versus approved by a person. I addressed these with feature detection, fallback behavior, explicit read-only annotations, structured outputs, and draft-only financial workflows.
ClientOps demonstrates how websites can become reliable working environments for both people and agents—not just interfaces that an AI has to interpret visually.
Log in or sign up for Devpost to join the conversation.