---
name: bijection-teams
description: "Evaluate and integrate the Teams component with Bijection."
---

# Teams

Bijection workspaces with membership, ownership, preferences, and Bijection-invite integration.

- Package: @bijectionhq/teams
- Category: Collaboration
- Status: Preview
- License: Apache-2.0
- Bijection source (repository access required): https://github.com/bijectionhq/teams/tree/0c342e3016c3ae44e4a5d95622a63a24062e40e2/packages/convex-teams
- Upstream: https://github.com/clipinfit/convex-teams/tree/77eaed196bd55e19d03a0f912c9efc8993141a53/packages/convex-teams
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/teams

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/teams.git
cd teams
git checkout 0c342e3016c3ae44e4a5d95622a63a24062e40e2
cd packages/convex-teams
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes @clipin/convex-teams. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


> Agents: read this skill fully before writing code that uses Teams. Follow the installation and configuration steps exactly.

# Teams

## Instructions

Teams adds shared and personal workspaces to Convex applications. It manages team identity, owner/admin/member roles, invitations, seat limits, ownership transfer, and workspace preferences. A TeamsClient connects host functions to the component. The host supplies authenticated user identity and controls billing, message delivery, and access to application content.

### Installation

```bash
npm install @clipin/convex-teams
```

Current npm version: `@clipin/convex-teams@1.0.1`

## Use cases

- Add shared workspaces where users can invite teammates and manage roles.
- Enforce seat limits when users join, including simultaneous membership requests.
- Support personal workspaces and saved workspace preferences.
- Transfer shared workspace ownership before the current owner leaves.
- Import existing teams with stable public IDs and batched memberships.

## How it works

Mount @clipin/convex-teams in convex.config.ts, then create a TeamsClient with components.teams. The host must authenticate each caller before passing their identity to the client. Host wrappers control which operations users can call.

Teams stores membership counts and updates them in the same transaction as membership changes. Pass the current seatLimit when accepting an invitation or adding a member. Concurrent grants cannot exceed that limit. Pending invitations do not reserve seats.

The component mounts convex-invite as a child to manage invitation tokens, expiry, resend, revocation, and acceptance. The host handles delivery. The delivery example issues an invitation through an internal mutation and sends its token from action memory. Raw tokens must not be logged or stored in scheduled arguments.

Team, member, and pending invitation lists use pagination. Deleting a team denies access immediately, then removes memberships and repairs preferences in background batches. The host handles cleanup of its own content and subscriptions.

See https://convex-teams.vercel.app/docs/getting-started for installation and integration instructions.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by Teams is not needed

## Resources

- [npm package](https://www.npmjs.com/package/%40clipin%2Fconvex-teams)
- [GitHub repository](https://github.com/clipinfit/convex-teams)
- [Live demo](https://github.com/clipinfit/convex-teams/tree/main/packages/example-backend)
- [Convex Components Directory](https://www.convex.dev/components/clipin/convex-teams)
- [Convex documentation](https://docs.convex.dev)