> [Agent navigation index](/llms.txt)

# External workspace applications

Adopt separately hosted applications, integrate React bindings, and configure intentional cross-origin calls to Brix services.

## Integrate external applications

Adopt a separately hosted non-Brix member into root installation ownership:

```sh
brix workspace adopt apps/admin --dry-run
brix workspace adopt apps/admin

```

The project retains its framework scripts and declares `brix.project: "external"`. Adoption snapshots the manifests, lockfiles, managed skills, and installed dependency trees it may mutate. A formatting, install, skill reconciliation, or doctor failure restores that managed state.

For an existing React host that needs Brix hooks:

```sh
brix workspace integrate react apps/admin --dry-run
brix workspace integrate react apps/admin

```

Integration installs the matching `@brix/react`, aligns React and ReactDOM, and records the React integration. It does not turn an external host into a managed `react-application`. For a new managed SPA, use `brix create react-app`; for Contentful, use `brix create contentful-app`. See [React applications](/docs/react).

## Configure cross-origin browser calls

Sharing a contract does not enable CORS. When a browser application calls a separately deployed BFF, pass the BFF origin as `baseUrl`:

```ts
const result = await executeApi(basketApiContract, {
  baseUrl: "https://basket-api.example.com",
  params: { basketId: "basket-123" },
});

```

The BFF must explicitly allowlist the browser application's origin with its server CORS configuration. Keep origins in [environment configuration](/docs/environment), not in a shared contract library.
