> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/stormkit-io/stormkit-io/llms.txt
> Use this file to discover all available pages before exploring further.

# Teams and Roles

> Teams on Stormkit allow you to collaborate with members on applications with role-based access control.

## Overview

Create teams to collaborate with your colleagues on Stormkit. Teams enable you to organize projects, manage access, and collaborate effectively with role-based permissions.

## Create a Team

A `Personal` team is created by default for each member. This space is to allow users manage their personal projects.

If you'd like to collaborate with other team members, you'll have to create a new team.

<Steps>
  <Step title="Open team selector">
    Click on the **Team Toggle** on the upper left part of the screen
  </Step>

  <Step title="Create team">
    Click on **Create Team**
  </Step>

  <Step title="Name your team">
    Give your team a name (e.g., "ACME Inc", "Marketing Team", "Engineering")
  </Step>

  <Step title="Confirm creation">
    Click **Create** to finalize the team creation
  </Step>
</Steps>

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/stormkit-io-stormkit-io/assets/docs/features/create-team.png" alt="Create team interface" />
</Frame>

## Roles and Permissions

There are three roles available in Stormkit:

<CardGroup cols={3}>
  <Card title="Owner" icon="crown">
    Full control over the team, including billing and team deletion.
  </Card>

  <Card title="Admin" icon="shield">
    Manage apps, deployments, and team members. Cannot manage billing or delete the team.
  </Card>

  <Card title="Developer" icon="code">
    Manage apps, deployments, and environments. Cannot manage team members or delete apps.
  </Card>
</CardGroup>

### Permissions Matrix

The table below illustrates the permissions each role has:

| Feature                      | Owner | Admin | Developer |
| ---------------------------- | :---: | :---: | :-------: |
| Manage app settings          |   ✅   |   ✅   |     ✅     |
| Manage deployments           |   ✅   |   ✅   |     ✅     |
| Manage environments          |   ✅   |   ✅   |     ✅     |
| Delete an app                |   ✅   |   ✅   |     ❌     |
| Migrate an app               |   ✅   |   ✅   |     ❌     |
| Invite members to the team   |   ✅   |   ✅   |     ❌     |
| Remove members from the team |   ✅   |   ✅   |     ❌     |
| Delete team                  |   ✅   |   ❌   |     ❌     |
| Billing                      |   ✅   |   ❌   |     ❌     |

## Managing Team Members

### Inviting Members

<Steps>
  <Step title="Access team settings">
    Navigate to your team's settings page
  </Step>

  <Step title="Invite member">
    Click on **Invite Member** button
  </Step>

  <Step title="Enter details">
    * Enter the member's email address
    * Select their role (Owner, Admin, or Developer)
  </Step>

  <Step title="Send invitation">
    Click **Send Invitation**. The member will receive an email invitation.
  </Step>
</Steps>

<Info>
  You need at least **Admin** role to invite members to the team.
</Info>

### Removing Members

<Steps>
  <Step title="Access team members">
    Navigate to your team's members list
  </Step>

  <Step title="Select member">
    Find the member you want to remove
  </Step>

  <Step title="Remove">
    Click the remove button and confirm the action
  </Step>
</Steps>

<Warning>
  Removing a member will immediately revoke their access to all team applications.
</Warning>

### Changing Member Roles

Owners and Admins can update member roles:

1. Navigate to team members list
2. Click on the member's current role
3. Select the new role from the dropdown
4. Changes take effect immediately

## Migrating an App

To migrate an application from a team to a different one:

<Steps>
  <Step title="Navigate to app settings">
    Go to the **Settings** page of your application
  </Step>

  <Step title="Find migration section">
    Scroll down to find the **Migrate app** section
  </Step>

  <Step title="Select destination team">
    Select the team you'd like to migrate the app to from the dropdown
  </Step>

  <Step title="Confirm migration">
    Click **Migrate** and confirm the action
  </Step>
</Steps>

<Warning>
  **Requirements:**

  * You must have **at least** `Admin` role for both teams (source and destination)
  * All deployments, environments, and configurations will be migrated
  * Team-specific integrations may need to be reconfigured
</Warning>

## Use Cases

<CardGroup cols={2}>
  <Card title="Agency Teams" icon="building">
    Create separate teams for each client, managing multiple projects with appropriate access levels.
  </Card>

  <Card title="Department Teams" icon="users">
    Organize teams by department (Engineering, Marketing, Design) with role-based access.
  </Card>

  <Card title="Project Teams" icon="folder">
    Create teams around specific projects or products for focused collaboration.
  </Card>

  <Card title="Freelance Collaboration" icon="handshake">
    Invite clients as Developers to review deployments without full access to settings.
  </Card>
</CardGroup>

## Best Practices

### Role Assignment

* **Use Developer role for most team members** - Gives them what they need without administrative overhead
* **Limit Owner role** - Only assign to those who need billing access
* **Admin for team leads** - Give Admin role to project leads and senior team members
* **Review roles regularly** - Audit and update roles as team members' responsibilities change

### Team Organization

* **Keep teams focused** - Create separate teams for different clients or major projects
* **Use descriptive names** - Make it clear what each team is for
* **Personal team for experiments** - Keep personal projects in your Personal team
* **Document team purpose** - Maintain documentation about what each team manages

### Security

* **Remove inactive members** - Regularly review and remove members who no longer need access
* **Principle of least privilege** - Give members the minimum role needed for their work
* **Regular audits** - Periodically review team membership and roles
* **Protect Owner role** - Ensure at least 2-3 owners per team for business continuity

## Billing

<Info>
  Only team **Owners** can manage billing settings, view invoices, and update payment methods.
</Info>

Billing is handled at the team level:

* Each team has its own billing account
* Usage is tracked per team
* Personal team billing is separate from organization teams
* Migrating apps between teams may affect billing

## Troubleshooting

<AccordionGroup>
  <Accordion title="Cannot invite members">
    * Verify you have Admin or Owner role
    * Check that the email address is valid
    * Ensure the team subscription supports additional members
    * Check if the user already has an invitation pending
  </Accordion>

  <Accordion title="Cannot migrate app">
    * Verify you have Admin role in both teams
    * Check that the destination team exists
    * Ensure you're not migrating to the same team
    * Contact support if the issue persists
  </Accordion>

  <Accordion title="Missing permissions">
    * Check your current role in the team
    * Contact a team Owner or Admin to update your role
    * Verify you're in the correct team
    * Some features may require specific roles
  </Accordion>

  <Accordion title="Cannot delete team">
    * Only Owners can delete teams
    * Remove all applications from the team first
    * Ensure all members except owners are removed
    * Cancel any active subscriptions
  </Accordion>
</AccordionGroup>
