The AI inside Vibe Studio. It understands AppEngine — your collections, your identity model, your integrations — so it builds the interface straight onto a backend that already exists. Multi-tenant from the first line: which organisation it is working for is a fixed value it is handed, not something it decides. When it is done, it ships to hosting itself, or you take the source and go.
One backend underneath all of them — the same collections, the same sign-in, the same integrations. Powered by Claude.
A general coding assistant would have written a login form and guessed at an endpoint. This one asks the live platform first, finds three separate identities in play, and asks which you meant — because getting that wrong hands a customer a staff token.
Add sign-in to the client dashboard.
GET /discover/01-auth · reading the live auth docsWho signs in here? There are three identities in play and they are not interchangeable — you, the builder; your customers, who see their own work; and staff, who run the business. Each has its own endpoint.
Customers.
orgid ← .vibe/project.json · a machine id, never guessedconst res = await fetch(`${BASE}/profile/customer/signin`, {
method: "POST",
headers: { orgid: ORG_ID, "Content-Type": "application/json" },
body: JSON.stringify({ email, password }),
});Most builders make this the moment you discover what you actually bought. There are two ends to the work here and both of them are yours.
Straight onto the project it was built in.
The files are yours, in formats nobody has to decode.
Vibe Agent is one panel of Vibe Studio, alongside the files, the terminal and the preview. It is looking at the same project you are, in an environment that already has your platform in it.

Not a pasted snippet. The files on disk, the routes they call, and the collections behind them.
Ordinary HTML, CSS, JS and a deploy manifest. Nothing proprietary to export from later.
Auth, integrations and agents are already running around it, so what it writes has something to call.
Which provider serves a request is configuration, not a rewrite — so you can pick what suits the task, survive a vendor's outage, and move as the field changes underneath you.
Yours reads files. This one also reads the platform those files run on — the collections you defined, the identity types in your organisation, the routes that already exist. That is why it can ask whether you meant staff or customers instead of inventing an endpoint and leaving you to discover it does not exist.