Platform
Users and Roles
User types, permissions, and role hierarchy in Cursorist.
Users Analysis
User Types and Permissions
User Hierarchy
Admin (1 user only)
│
▼
Organization Owner
│
▼
Team Admin
│
▼
Team Member
│
▼
Authenticated User
│
▼
Anonymous VisitorPermission Matrix
| Action | Anonymous | Authenticated | Team Member | Team Admin | Org Owner | Admin |
|---|---|---|---|---|---|---|
| View /welcome | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| View /explorer | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| View plugin details | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Use deeplinks | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Login | ✓ | - | - | - | - | - |
| Create organization | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| Join team | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create plugins | - | - | ✓ | ✓ | ✓ | ✓ |
| Edit own plugins | - | - | ✓ | ✓ | ✓ | ✓ |
| Delete own plugins | - | - | ✓ | ✓ | ✓ | ✓ |
| Manage team members | - | - | - | ✓ | ✓ | ✓ |
| Create teams | - | - | - | - | ✓ | ✓ |
| Delete teams | - | - | - | - | ✓ | ✓ |
| Manage organization | - | - | - | - | ✓ | ✓ |
| Invite to platform | - | - | - | - | ✓ | ✓ |
| Access /admin | - | - | - | - | - | ✓ |
| Publish to OSS | - | - | - | - | - | ✓ |
| View platform metrics | - | - | - | - | - | ✓ |
User Data Model
User Schema
interface User {
id: string; // Supabase auth ID
github_id: string; // GitHub user ID
github_username: string; // GitHub username
avatar_url: string; // GitHub avatar
email: string; // GitHub email
created_at: timestamp; // Registration date
updated_at: timestamp; // Last update
is_admin: boolean; // Admin flag (only 1 true)
onboarding_completed: boolean; // Onboarding status
}Organization Membership
interface OrganizationMember {
id: string;
user_id: string;
organization_id: string;
role: 'owner' | 'member';
joined_at: timestamp;
}Team Membership
interface TeamMember {
id: string;
user_id: string;
team_id: string;
role: 'admin' | 'member';
joined_at: timestamp;
}User Flows
New User Registration
GitHub OAuth Success
│
▼
Check if user exists in Supabase
│
├── No: Create user record
│ │
│ ▼
│ Set onboarding_completed = false
│ │
│ ▼
│ Redirect to /onboarding
│
└── Yes: Check onboarding status
│
├── Not completed: /onboarding
│
└── Completed: /explorerOrganization Creation Flow
User on /explorer (first time)
│
▼
Prompt: "Create your organization"
│
▼
User enters organization name
│
▼
Generate organization_slug
│
▼
Create organization in Supabase
│
▼
Add user as organization owner
│
▼
Redirect to organization dashboardTeam Creation Flow
Organization Owner on /organization/{org}
│
▼
Click "Create Team"
│
▼
Enter team name
│
▼
Generate team_slug
│
▼
Create team under organization
│
▼
Owner automatically becomes team adminMember Invitation Flow
Org Owner/Team Admin
│
▼
Click "Invite Member"
│
▼
Enter GitHub username or email
│
├── User exists on platform
│ │
│ ▼
│ Add to team directly
│
└── User not on platform
│
▼
Send invitation email
│
▼
User signs up via GitHub
│
▼
Auto-add to team on signupUser Routes
Authenticated User Routes
| Route | Purpose |
|---|---|
| /dashboard | Personal plugin management |
| /settings | Profile and preferences |
| /explorer | Browse all plugins |
| /plugins/{slug} | View specific plugin |
| /plugins/{slug}/detail | Detailed plugin view/edit |
Organization Routes
| Route | Purpose | Access |
|---|---|---|
| /organization/{org} | Organization details | Org members |
| /organization/{org}/settings | Org settings | Org owner |
| /organization/{org}/members | Member management | Org owner |
Team Routes
| Route | Purpose | Access |
|---|---|---|
| /organization/{org}/{team} | Team dashboard | Team members |
| /organization/{org}/{team}/plugins | Team plugins | Team members |
| /organization/{org}/{team}/settings | Team settings | Team admin |
User Dashboard Features
/dashboard
-
My Plugins
- List of plugins created by user
- Quick edit access
- Publish status
- Install count
-
Favorite Plugins
- Saved plugins from other users
- Quick access for common use
- Remove from favorites
-
Activity Feed
- Recent plugin installations
- Team activity
- Organization updates
-
Quick Actions
- Create new plugin
- Browse explorer
- Team navigation
User Settings
/settings
-
Profile
- Display name (from GitHub)
- Avatar (from GitHub)
- Bio/description
-
Notifications
- Email preferences
- In-app notifications
- Activity digests
-
Connected Accounts
- GitHub connection status
- Re-authorize if needed
-
Organizations
- List of memberships
- Leave organization option
-
Danger Zone
- Delete account
- Export data
User Experience Principles
-
GitHub-First Identity
- All user data sourced from GitHub
- No separate profile management
- Seamless OAuth experience
-
Organization-Centric
- Users must belong to organization
- Plugins are team-scoped
- Collaboration is default
-
Progressive Access
- Anonymous can browse
- Login unlocks creation
- Team membership enables publishing
-
Deeplink Integration
- Every plugin is installable
- One-click to Cursor IDE
- Frictionless developer experience