Brod

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 forWeb apps and sites of any sizeSmall internal apps for a team
Web hosting and HTTPSYesYes
Framework and runtime choiceWideStatic files and a small server script in JavaScript or WebAssembly
Team sign-inAdd an auth providerBuilt in: emailed link or Google
Who can open each appBuild it in the appBuilt in: six access modes, grants by person, group or email domain
Roles inside the appBuild it in the appBrod tells the app the visitor's role; the app decides what that role may do
App data and filesAdd a database serviceBuilt in: SQLite database, key-value store and file storage per app
SecretsEnvironment variablesEncrypted, write-only, read by server code as env.NAME
RollbackYesYes, plus a staging address for updates
How deploys happenUsually from a Git repository or a CLIYour agent over MCP, or the REST API
Run it yourselfNo, it is a hosted serviceYes, 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 fetch handler.
  • 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

  1. Static front ends

    Static front ends, including the built output of React, Vue, Svelte or Astro, usually deploy as they are.

  2. Apps with a backend

    An app with a backend needs its server part as a _worker.js file with a fetch handler, and should use Brod's database, files and secrets instead of separate services. Your coding agent can make that change.

  3. 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.

Your AI already built the app. Put it in your team's hands.