Team & Roles
The people side of the workspace, in three trays: members, pending invitations and roles. A role decides what its holder may see and do — read the built-in ones, or shape your own from a permission matrix.
At a glance
- Every member in one table — role, status and joined date
- Invitations answered with a share link and its expiry
- Built-in roles read-only, their permissions as chips
- Custom roles from a checkbox permission matrix

Members
A table of everyone in the workspace — avatar and name beside the email, the role, a status badge and the joined date — with Change role on each row. The row that is yours carries no action; nobody edits themselves here.
Pending invitations
Each open invitation draws as the email over its role and expiry, with an outline Revoke beside it. Invite answers with a share link and its expiry; Revoke takes an invitation back.
Roles
An accordion of roles: the built-ins wear a Built-in badge and read as permission chips, never editable; custom roles open into a checkbox permission matrix grouped by resource. New role starts one with a name, a key and a description.
- Invite a teammateInvite sits in the Members tray header; it takes one email and one role, and answers with a share link and its expiry.
- Change a roleChange role on a member's row opens a dialog. Your own row offers no actions, and Owner is offered only by an owner.
- Create a custom roleNew role asks for a name, a key and a description; a checkbox matrix grouped by resource then decides what the role permits.
