Members

See who's on your workspace, invite new teammates, and remove members. Some actions are admin-only.

The Members page lives at /app/members. It shows the workspace's members and any pending invitations. Some actions are only visible to admins.

Page structure

Top of the page:

  • A heading with the workspace name
  • Subtitle: "Manage members and invitations."

Sections that follow (in order):

  1. Invite a member card — admins only
  2. A horizontal separator
  3. Members ([count]) section — always present
  4. A second horizontal separator + Pending Invitations ([count]) section — only if there's at least one invitation outstanding

Invite a member (admin-only)

Shown only to admins. Card title: Invite a member. Description: "Send an invitation to join this account."

┌─ Invite a member ─────────────────────────────────────────┐
│  Send an invitation to join this account.                 │
│                                                           │
│  Email                     Name (optional)                │
│  [ colleague@example.com ] [ Jane              ] [Invite] │
└───────────────────────────────────────────────────────────┘

Fields:

  • Email — required, placeholder "colleague@example.com"
  • Name (optional) — placeholder "Jane"

Submit button: Invite. While saving: "Sending...".

Possible flashes after you submit:

  • Success: "Invitation sent!"
  • Already a member of this workspace: "This user is already a member of this account."
  • Anything else went wrong: "Could not send invitation."

Members list

Section heading: Members ([count]). One card per member:

  • Primary label: first and last name
  • Below: email (muted)
  • A rounded pill — Admin for admins, Member otherwise
  • A Remove button (ghost, red) — admins only

Clicking Remove opens a confirmation: "Remove this member from the account?". Confirming removes the member from the workspace. The flash afterwards is: "Member removed."

Pending Invitations

Only shown when there's at least one pending invitation. Heading: Pending Invitations ([count]). One card per invitation:

  • Primary label: the invited person's name if entered, otherwise their email
  • Below (only when a name was entered): the email (muted)
  • A muted Pending pill
  • A Cancel button (ghost) — admins only

Clicking Cancel opens a confirmation: "Cancel this invitation?". Confirming revokes the invitation. The flash afterwards is also "Member removed." — both actions share the same backend confirmation.

Roles

Every member is either Admin or Member. There are no other roles on this page today.

  • Invitations — the invited user's side of the flow
  • Workspaces — how switching between workspaces works