Hexclave

Build for teams, not just users

Workspaces out of the box·Invite by email — join with a click·Roles that actually gate the work

A workspace model that fits any B2B product

Drop-in switcher·Invite from your server·Render members in your UI

tsx
1import { SelectedTeamSwitcher } from "@stackframe/stack";
2 
3export default function Layout({ children }) {
4 // Picks the active workspace and remembers it for next time.
5 return (
6 <>
7 <header><SelectedTeamSwitcher /></header>
8 {children}
9 </>
10 );
11}

Everything you need to ship B2B

Workspaces users understand·Invites that don't get stuck·Roles that hold up under audit

Workspace/Switcher
Live
AC
Acme Co
24
Active workspace
Acme Co
24 members · /team/acme
Projects12
Pending invites3
Open issues47

01·Workspaces

One switcher. Every workspace your user belongs to.

  • A drop-in switcher that remembers the active workspace across visits
  • Deep-link straight into a workspace — or keep one global default
  • Different display name and avatar per workspace for the same person
Workspace switcherPer-workspace profilePersistent selection
Acme Co/Invite teammate
Flow
Send an invite
email@company.com
Magic link emailed · join with one click
Maya's inbox
Waiting for an invite…
Team members3 members
AL
Ada Lovelace
Admin
TP
Theo Park
Editor
RS
Riya Shah
Member

02·Invites

Invite by email. They join with one click.

  • Send a branded magic-link invite from your server
  • New users sign up and land inside the workspace automatically
  • See who's been invited, who's pending, and who's joined
Magic-link invitesAuto sign-upPending list
Acme Co/Roles
Permissions
TP
Theo Park
theo@acme.com
Member
Admin
System permissions1 / 6 granted
$invite_members
Invite teammates
$read_members
View members
$update_team
Update workspace
$remove_members
Remove members
$manage_api_keys
Manage API keys
$delete_team
Delete workspace
user.usePermission(team, "$invite_members")
blocked
Invite teammate
Action gated · requires permission

03·Roles & permissions

Roles you define. Gates that actually hold.

  • Six built-in permissions for the basics — invite, remove, update, delete
  • Compose your own roles in the dashboard and nest the built-ins inside
  • Check a permission once on the client and again on the server — same answer
Built-in permissionsCustom rolesServer-checked

Ready to ship for teams?

Workspaces, invites, and roles — without the months it usually takes.

Get started for free