---
name: bijection-memberships
description: "Evaluate and integrate the Memberships component with Bijection."
---

# Memberships

Membership and relationship tuples

- Package: @bijectionhq/memberships
- Category: Authentication
- Status: Reference
- License: MIT
- Bijection source (repository access required): https://github.com/bijectionhq/memberships/tree/3709c5e1e9bd794b03be90df76cf16377a239a90
- Upstream: https://github.com/vllnt/convex-memberships/tree/236426bcd6e348a00f3e6d1adef4a872b126df51
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/memberships

## Get the source

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

```sh
git clone https://github.com/bijectionhq/memberships.git
cd memberships
git checkout 3709c5e1e9bd794b03be90df76cf16377a239a90
```

## 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 @vllnt/convex-memberships. 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 Memberships. Follow the installation and configuration steps exactly.

# Memberships

## Instructions

@vllnt/convex-memberships stores who is related to what using memberRef, resourceRef, and relation. Your app defines the meaning of each reference and relationship, so one storage model can support several domains.

Add or remove relationship tuples, transition a relation, and paginate in either direction: members of a resource or resources of a member. Re-adding the same tuple is idempotent. Opaque kind and status fields let the host describe its own entities.

The host owns authentication and permission policy. Always specify the accepted relation in authorization checks: an any-relation check can also match an invited or suspended relationship. This is a flat relationship store; transitive group expansion belongs in the application.

Maintained by [bntvllnt](https://bntvllnt.com) at [VLLNT](https://vllnt.com). Find the author on [GitHub](https://github.com/bntvllnt) and [X](https://x.com/bntvllnt).

### Installation

```bash
npm install @vllnt/convex-memberships
```

Current npm version: `@vllnt/convex-memberships@0.1.0`

## Use cases

- SaaS workspaces: list members and the workspaces a person belongs to.
- Learning platforms: represent learners enrolled in courses or cohorts.
- Games and communities: maintain guild, team, or group membership.
- Collaborative tools: record document viewers, editors, or resource-specific sharing relationships.

## How it works

Add or remove relationship tuples, transition a relation, and paginate in either direction: members of a resource or resources of a member. Re-adding the same tuple is idempotent. Opaque kind and status fields let the host describe its own entities.

The host owns authentication and permission policy. Always specify the accepted relation in authorization checks: an any-relation check can also match an invited or suspended relationship. This is a flat relationship store; transitive group expansion belongs in the application.

## 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 Memberships is not needed

## Resources

- [npm package](https://www.npmjs.com/package/%40vllnt%2Fconvex-memberships)
- [GitHub repository](https://github.com/vllnt/convex-memberships)
- [Live demo](https://vllnt.com/)
- [Convex Components Directory](https://www.convex.dev/components/vllnt/convex-memberships)
- [Convex documentation](https://docs.convex.dev)