Mission Control is a full-stack Next.js application. Understanding its layers helps you deploy it reliably, extend it confidently, and debug it quickly when something goes wrong.
The frontend is a standard Next.js App Router application. It provides:
The frontend communicates with the backend exclusively through Next.js API routes, keeping the client-server boundary clean and explicit.
Next.js API routes handle all server-side logic. There is no separate backend process — the Next.js server handles:
Mission Control uses SQLite as its database, managed through a lightweight ORM layer. SQLite was chosen deliberately: it requires zero infrastructure, runs entirely on your local machine, and is fast enough for the task volumes a single team generates.
The database stores tasks, agent configurations, dispatch records, and activity logs. Backups are as simple as copying a single file.
OpenClaw is the protocol layer Mission Control uses to communicate with agents. When a task is dispatched, Mission Control sends a structured request to the agent through the OpenClaw Gateway. The gateway handles routing, authentication headers, and response normalization across different agent types.
When an agent finishes work or needs to report an intermediate result, it calls back to Mission Control via a webhook. Webhook payloads are validated using HMAC signatures to ensure they come from legitimate agents and haven’t been tampered with.
This callback architecture means agents don’t need a persistent connection to Mission Control — they can operate independently and report back when ready.
The entire stack runs on your machine at localhost:4000. There is no cloud dependency, no external service to configure, and no data leaving your environment unless you explicitly integrate an external agent provider.