Skip to content

Teams

NuxtBase enables Better Auth teams inside each organization:

teams: { enabled: true }

A team is a sub-group inside an organization, not a top-level tenant. The organization remains the real multi-tenant boundary.

Use teams when one organization needs smaller working groups, for example:

  • departments
  • internal pods
  • product squads
  • client-specific sub-groups inside the same workspace

If your product needs hard tenant separation, keep that at the organization level, not the team level.

The teams dashboard page restricts management actions to organization managers:

  • owner
  • admin

Regular members do not get create, rename, delete, or manage-members controls.

Managers can:

  1. create a team
  2. rename a team
  3. delete a team
  4. open the team-members modal
  5. add organization members into a team
  6. remove team members from a team

The page also shows lightweight member previews for each team.

Teams are built on top of organization membership, not in parallel to it.

That means:

  • a user must already be in the organization before they can be added to a team
  • the teams UI cross-references organization members when offering add-member choices

This is the right mental model: team membership is a refinement of organization membership.

The template uses Better Auth organization team APIs for most team mutations, but also includes a custom route for reading current team members:

/api/teams/{teamId}/members

That exists as a practical workaround for current Better Auth limitations around listing team members in the exact shape the UI needs.

The teams page handles the empty case explicitly. If an organization has no teams, users see a dedicated empty state instead of a broken table.

That makes teams safe to leave unused if your product does not need them immediately.

  1. create one team in a real organization
  2. add an existing organization member to that team
  3. reload the page and verify the member list persists
  4. rename the team
  5. remove the member
  6. delete the team