Confidential AI apps

Build confidential apps where people and AI work together.

Your app is a static page. Witbitz runs everything underneath — the shared room, its members, the AI assistant and its tools, storage, sign-in and approvals — and what is said in a room is sealed from us, and from the app's own builder.

You don't take that on trust. You check it.

Your app
a static page
no backend of its own
the only
connection
▶
Witbitz
rooms · members · the assistant
storage · sign-in · approvals

✕ no other servers, trackers, or backends

The difference

Tell your users something other AI apps can't

Check the privacy boundary yourself. Witbitz publishes the evidence instead of asking you to trust it:

  • What an app is allowed to send. Each app's network permissions are published and enforced.
  • What the platform stores. Only encrypted data, locked with a key created on the user's device. The stored record shows who can open it: the room, not Witbitz.
  • The exact code that's running. Every release is published and can be rebuilt and compared.

In a confidential room, the assistant itself runs inside a verified enclave. Witbitz and the app's builder can't read the conversation, even while the assistant is working on it.

Don't take our word for it — open a live room and see the boundary for yourself:

Build it

A static page is a complete app

This page is a private, multiplayer AI app — no server of your own, no database, no key handling:

html
<script type="module">
  import { Witbitz } from 'https://witbitz-spaces.pages.dev/sdk/3.10.0/witbitz-sdk.js'

  const space = await new Witbitz({ tenant: 't_…' }).createSpace({   // your tenant id
    agent: { name: 'Helper', instructions: 'You help a small group plan and decide together.' }
  })
  space.on('message', (m) => console.log(m.from, m.text))
  await space.send('Plan us a weekend in Kyoto')
  console.log('Share this:', space.shareLink)
</script>

Creating rooms needs a free tenant and your page's origin declared once (how). From there: tools and approvals, your app's data in the room, gated members, a private assistant for each member, the confidential tier. The SDK →

The primitive

Your app is made of Spaces — one, or several working together

A Space — a shared room with an AI assistant — is the building block. On its own it is a chat; wired to your app's tools, data and permissions, it becomes how people use your app: by asking for what they want.

One Space serves a single person; a few, linked, serve two organizations:

One governed roomAn organization's assistant serves a person, and the organization cannot read the sessions — customer service, a bank advisor, telehealth intake.
A professional and a private back roomA shared room with the client, and a private one beside it to confer — a teacher, a doctor and a scribe, a lawyer.
Two sides, each with its own assistantEach prepares in private, and they meet in a shared room — negotiation, procurement, mediation.
Many people, one assistantEveryone sees the same thread and the same widgets — group planning, a family, a community.

Other agents can come in too. Claude Code, Grok and other agents can reach a member's private assistant over A2A or MCP, and the member decides what goes back. Outside agents →

Or put a room in your page. One line — <script src="https://witbitz.chat/embed.js"> — drops a live room into your site, in its own origin: the scripts on your page can't reach into it. Embedding is off until we add your origin. How → · See it live →