Sorry! Internet Explorer is not supported on this site. Please view on Chrome, Firefox, or Edge.

Having fun at Zao is one of our values. We’ve put limited animated flourishes throughout our site to communicate our love of levity. We also recognize that onscreen movement is not fun or possible for everyone. We've turned off all our animations for you per your browser's request to limit motion. That said, we don't want you to miss out on the party.

Here's a funny joke to enjoy!

Why don’t ants ever get sick?

Because they have little anty bodies.

What Dash is

Dash is an agency operating system. We use it to keep client work, retainers, invoices, and agents in one place instead of spreading that state across Slack, a dozen spreadsheets, and whoever happened to remember.

It is not a WordPress plugin. It is not a hosted SaaS. It is a Laravel 12 app with Vue 3 and Inertia that you clone and run. The public tree at zao-web/zao-dash-oss is an MIT snapshot of that app, with household finance and tax office tools stripped out.

PHP
8.4
Laravel
12
Vue
3, Composition API
Inertia
2
License
MIT

Why we published it

We built Dash because we needed an operating system that agents can actually call. Keeping that private would have left us with a useful tool nobody else could run. Publishing a sanitized tree lets another shop stand up the same clients-to-invoices loop, including the MCP servers our own agents already use.

The snapshot is honest about what it is not. Owner PII, production hosts, household Life ledgers, and the CPA/tax office are out. What stayed is the agency product: clients, projects, tasks, retainers, invoices, leads, agents, the website builder, and the Slack, GitHub, and Google integrations.

Agents talk to it over MCP

HTTP MCP servers register in routes/ai.php. Cursor, Claude, and other MCP clients call those servers the same way they call any other tool. Internal servers use Sanctum plus an internal-user gate. The client server uses a client-scoped token.

This is the useful map, not the full catalog. Tool names and arguments live in the repository.

/mcp/zao-dash ZaoDashServer
Clients, projects, tasks, invoices, and agents.
/mcp/zao-web ZaoWebServer
Website builder, WordPress, and SEO work.
/mcp/zao-comms ZaoCommsServer
Email, Slack, Drive, and RFPs.
/mcp/zao-finance ZaoFinanceServer
Client profitability and invoice velocity (DSO).
/mcp/zao-client ZaoClientServer
A per-client site token, not the internal agency servers.

Get it running

The README is the source of truth. These are the first-run steps as of the public snapshot.

  1. Install PHP 8.4, Composer, Node 20+, and SQLite or MySQL.
  2. Clone the public tree and copy .env.example to .env.
  3. Run composer setup. That installs PHP deps, generates APP_KEY, migrates, and builds assets.
  4. Run composer dev, then open APP_URL from .env.
  5. If you seeded, sign in as owner@example.com. Change that password before any shared deploy.

What we left out

Household Life ledger UI, the CPA/tax office, personal-bank MCP tools, and owner PII are stripped or stubbed. Some models and migrations remain so php artisan migrate stays coherent with the private schema. They have no HTTP routes in this snapshot. docs/OSS.md lists the strip.

Start with the repository

Clone it, run composer setup, then read the README. MIT on our source. Composer and npm dependencies keep their own licenses.