Skip to content
esc

Search pages and sections. Try a tool name, an error code, a route.

↑↓ navigate↵ openesc close

Guides · Concepts

How it fits together

One account, many projects, one API behind everything.

Account and projects#

You have one account: the thing you sign in to on the dashboard, that holds your plan, your agent key and your GitHub connection. An account owns projects. Each project is one app's backend, fully its own: a SQL database, a file bucket, its end users and their sessions, its keys, its edge functions, its site. Nothing is shared between two projects — not a table, not a file, not a user. Deleting a project takes all of it away.

Quotas, on the other hand, are counted on the account: file storage, database size and monthly requests add up across projects, and the app count is per account. See Limits and quotas.

Two planes#

Every request goes to one of two hosts, and the key you present decides which.

PlaneHostKeyHolds
Managementapi.manybases.comak_ — the account key, held by an agent or the dashboardProjects, usage, project users, keys, SQL and logs, functions, sites, secrets, GitHub
Dataproj-<id>.manybases.com — one host per projectpk_ (publishable, in the app) or sk_ (secret, on a server)Rows, schemas, spaces, end-user auth, files

Every data route also exists under /v1/projects/:pid/… on the management host for the account key, so an agent reads and writes a project's data through the same door as everything else.

Two more hosts are derived from a project's id: proj-<id>-fn-<slug>.manybases.com for each edge function, and proj-<id>.manybases.online for the deployed site, which also answers at a readable subdomain of the same zone — a different domain on purpose, so that a hosted page shares nothing with the dashboard or the API in a browser's eyes.

The URL addresses; the key authorizes. Calling project B's host with project A's key is refused with the same neutral 404 as a project that does not exist.

The four ways in#

  • An agent, through the MCP server — the remote connector at mcp.manybases.com or the local server — with the account key. This is the primary way: an agent creates a project, its tables, its keys, deploys its functions and its site. Connect an agent.
  • Your app's code, with the SDK @manybases/js and the project's publishable key in the browser or secret key on a server. SDK.
  • Any HTTP client, against the same routes. API conventions.
  • The dashboard, at dash.manybases.com, for what a human does with their eyes and a few gestures an agent cannot make alone. Dashboard.

All four hit the same API. There is no feature that exists only in the dashboard except the gestures that require a signed-in human — see The human boundary.

Where the data lives#

Each project's database and files are in Cloudflare's Western Europe region (weur), fixed at creation and shown on the project card. Each project runs in its own isolated worker with only its own database and bucket attached. See Data isolation.

Browsers#

Both hosts answer browsers from any origin with permissive CORS (Access-Control-Allow-Origin: *, no credentials). A publishable key is shared by every visitor of an app, so the 300 requests per minute of a key are a common bucket for all of them. The exact headers are in API conventions.