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.
| Plane | Host | Key | Holds |
|---|---|---|---|
| Management | api.manybases.com | ak_ — the account key, held by an agent or the dashboard | Projects, usage, project users, keys, SQL and logs, functions, sites, secrets, GitHub |
| Data | proj-<id>.manybases.com — one host per project | pk_ (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.comor 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/jsand 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.
