Comparison
Brod vs Vercel for internal tools
Vercel is a general-purpose platform for web apps, with wide control over frameworks and infrastructure. Brod is narrower: it runs internal apps, gives each one sign-in, access control, data and secrets, and your coding agent deploys to it over MCP.
The short answer
Brod is not a replacement for Vercel. They solve different problems.
Choose Vercel
Or another general-purpose platform, when you are building a product for customers, need a specific framework or runtime, or want to choose your own database, auth provider and services.
Choose Brod
When the app is an internal tool for your team, you want sign-in and permissions to be there already, and you want your coding agent to deploy and manage it without a pipeline in between.
Plenty of teams will use both: their product on a general-purpose platform, and the expense tracker, the stock checker and the on-call rota on Brod.
Side by side
| General-purpose platform (such as Vercel) | Brod | |
|---|---|---|
| Built for | Web apps and sites of any size | Small internal apps for a team |
| Web hosting and HTTPS | Yes | Yes |
| Framework and runtime choice | Wide | Static files and a small server script in JavaScript or WebAssembly |
| Team sign-in | Add an auth provider | Built in: emailed link or Google |
| Who can open each app | Build it in the app | Built in: six access modes, grants by person, group or email domain |
| Roles inside the app | Build it in the app | Brod tells the app the visitor's role; the app decides what that role may do |
| App data and files | Add a database service | Built in: SQLite database, key-value store and file storage per app |
| Secrets | Environment variables | Encrypted, write-only, read by server code as env.NAME |
| Rollback | Yes | Yes, plus a staging address for updates |
| How deploys happen | Usually from a Git repository or a CLI | Your agent over MCP, or the REST API |
| Run it yourself | No, it is a hosted service | Yes, open source under AGPL-3.0 |
What you set up yourself on a general-purpose platform
A general-purpose platform hosts the app well. For an internal tool, the work is everything around it.
Auth
An auth provider, and code in the app that checks every request.
Users
A user table or a list of who is allowed in, kept in sync as people join and leave.
Roles
Who can approve, who can only look.
Database
A database service, its connection string and its credentials.
API keys
A place for API keys that is not the code.
None of this is hard on its own. For a tool ten people use, it adds up to more work than the tool. And when an AI agent writes the auth code, a mistake there is the kind that leaks data.
What Brod does instead
On Brod, those parts belong to the platform, and the app only contains its own logic.
Sign-in
People sign in once per workspace with an emailed link or Google. Brod checks access before a request reaches the app. The app reads who the person is from
/_brod/me, or from request headers in server code. There is no login page or user table to build.Access
Apps start private. Each app can be shared with named people, groups or an email domain, opened to the workspace, put behind a password, opened to anyone signed in, or made public.
Data
An app with server code gets its own SQLite database, key-value store and file storage. One app cannot reach another app's storage.
Secrets
Stored encrypted. Server code reads them; nobody can read them back through the API or MCP.
Versions
Every deploy is a numbered version. Updates to a live app can go to a staging address first, and rollback takes effect on the next request.
The agent can deploy and fix apps, but it cannot quietly widen access. Sharing an app more widely or inviting someone waits for a person to confirm. See the security model.
Where Brod is the wrong choice
Be clear about what Brod does not do before you pick it.
- No Python, Ruby, Go, containers or long-running processes. Server code is JavaScript and WebAssembly, in a Worker-style
fetchhandler. - No scheduled jobs or queues. No scheduled jobs, background queues, sending email from an app, or serving WebSockets.
- No company SSO. No SAML, OIDC with your own identity provider, or SCIM.
- No deploys from a Git repository yet. Deploys come from your agent or the API.
- Not for large public sites. Brod is made for internal tools.
If your app needs any of these, a general-purpose platform is the better home today.
Moving an internal tool to Brod
Static front ends
Static front ends, including the built output of React, Vue, Svelte or Astro, usually deploy as they are.
Apps with a backend
An app with a backend needs its server part as a
_worker.jsfile with afetchhandler, and should use Brod's database, files and secrets instead of separate services. Your coding agent can make that change.Deploy from your agent
Then connect Brod to the agent and ask it to deploy: see Claude Code, Cursor or Codex.
Questions
Is Brod a replacement for Vercel?
No. General-purpose platforms give you full control over frameworks and infrastructure. Brod is narrower: it runs internal apps and gives them sign-in, permissions, data and secrets without setup.
Do I need a separate database service on Brod?
No. An app with server code gets its own SQLite database, key-value store and file storage, reached as env.DB, env.KV and env.FILES. Static apps without server code have no storage.
Does Brod generate the app?
No. Your coding agent writes the app. Brod runs it and gives it what it needs in production.
Can I run Brod on my own server?
Yes. Brod is open source under AGPL-3.0 and runs with Docker Compose. See pricing for how self-hosting and brod.sh differ.
Does rollback restore data?
No. Rollback restores code versions. The database, files and secrets are shared by every version and by staging, so be careful with changes that rewrite data.
Keep reading
- Internal toolsBrod runs the internal tools your team builds with Claude Code, Cursor or Codex: private address, team sign-in, roles, database, secrets, logs and rollback, deployed by your agent.
- AI app runtimeWhy apps written by coding agents need a different kind of runtime: one the agent can deploy to, with identity, data, secrets and versions built in. How Brod's runtime works and where it stops.
- Secure AI-generated appsThe security problems AI-generated internal apps share (hardcoded keys, no auth, open data, risky agent edits) and how running them on Brod closes each one by default.
- MCP deploymentBrod is a remote MCP server for deploying apps. Connect Claude Code, Cursor, Codex or any MCP client over Streamable HTTP and let the agent deploy, read logs, set secrets and roll back.