deploy
Agent on one host, frontend on Vercel/Netlify — two repos, two pipelines, two deploys.
React/Vite app packed with the agent — one deploy ships the whole agent app.
Your agent is an API. The people who use it expect a chat window. Standing that up usually means a second repo, a second deploy, a second host, and a cross-origin auth headache. a2a cloud hosts a React/Vite frontend packed alongside the agent — same domain, same auth gateway, TLS included — so the whole agent app, UI and all, ships in one deploy.
one deploy · same domain · one auth model
You built an agent and exposed it as an endpoint. Now someone wants to actually use it, and an endpoint isn't a product — it needs a UI. The default path is to spin up a separate frontend on another host, give it its own auth, configure CORS between two origins, and keep a web server running just to serve the chat. Two deploys, two things to secure, two places for the record to drift.
a2a treats the frontend as part of the whole agent app: a React/Vite UI hosted on the same domain, guarded by the same gateway, and served over the same scale-to-zero infrastructure as the agent it talks to.
Drop a React or Vite app next to your agent and one deploy ships both. The UI travels with the agent as part of the whole agent app — no second repo, no second pipeline, no second host.
The frontend is served from the same domain as the agent's API, so there's no cross-origin dance, no separate CDN to configure, and no CORS you have to hand-tune.
The UI authenticates through the same Keycloak-backed OpenAPI gateway that guards the agent. Users log in once; the frontend calls the agent under a scoped grant, not an exposed API key.
The frontend calls the agent through its OpenAPI gateway — the same authenticated endpoint any client uses. Your chat UI is just a first-class consumer of the agent's own API.
TLS is terminated for you, and the frontend rides the same scale-to-zero infrastructure as the agent. No always-on web server to keep the UI online, no cert to renew.
Messages sent through the API, MCP, or /invoke entry point create signed evidence. Agent API evidence is persisted; public `/invoke` and standard MCP `tools/call` responses include gateway evidence.
Agent on one host, frontend on Vercel/Netlify — two repos, two pipelines, two deploys.
React/Vite app packed with the agent — one deploy ships the whole agent app.
Separate origins mean CORS config, cross-origin cookies, and a second DNS setup.
Frontend and agent served from the same domain — no cross-origin plumbing.
The UI holds an API key or its own auth, bolted onto the agent's separately.
One Keycloak-backed gateway guards both; the UI calls under a scoped grant.
You keep a web server or static host running just to serve the chat UI.
The frontend rides scale-to-zero with the agent — TLS included, idle costs nothing.
The chat sends requests; what the agent did behind each one is a mutable log.
Covered Agent API, public `/invoke`, and standard MCP `tools/call` executions produce verifiable signed evidence.
On a2a cloud, put a React or Vite app alongside your agent and deploy once. The frontend is built and hosted on the same domain as the agent, wired to the same auth gateway, and served over TLS — so your agent ships with a hosted chat UI without a separate frontend deploy.
Yes. That's the point — the frontend is packed with the agent, so one deploy produces both the agent's API and its UI. There's no second repo, pipeline, or host, and no cross-origin configuration because the UI and API share a domain.
Through the same Keycloak-backed OpenAPI gateway that guards the agent. Users log in once and the frontend calls the agent under a scoped grant rather than an exposed API key, so the UI and the agent share one identity and authorization model.
A standard React/Vite frontend — you build the UI you want and a2a hosts it alongside the agent. The frontend simply calls the agent's OpenAPI gateway, so it's a first-class consumer of the same authenticated API any client would use.
When the UI calls the API, MCP, or /invoke entry point, it receives an Ed25519-signed receipt covering caller, skill, input hash and result preview, verified grant IDs, outcome/result preview, and timing. The Agent API, public `/invoke`, and standard MCP `tools/call` paths are covered; formal A2A task routes are not skill executions.
All guides live in the guides index.
a2a cloud deploys any agent — LangGraph, OpenAI Agents SDK, CrewAI, or custom — with managed Postgres, MCP and API surfaces, and a frontend. The control plane signs authenticated Agent API calls; trusted ingress signs public /invoke and standard MCP tools/call executions. Connector MCP and formal A2A task routes are outside that coverage.