Cursorist Docs
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 Visitor

Permission Matrix

ActionAnonymousAuthenticatedTeam MemberTeam AdminOrg OwnerAdmin
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: /explorer

Organization 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 dashboard

Team Creation Flow

Organization Owner on /organization/{org}
    │
    ▼
Click "Create Team"
    │
    ▼
Enter team name
    │
    ▼
Generate team_slug
    │
    ▼
Create team under organization
    │
    ▼
Owner automatically becomes team admin

Member 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 signup

User Routes

Authenticated User Routes

RoutePurpose
/dashboardPersonal plugin management
/settingsProfile and preferences
/explorerBrowse all plugins
/plugins/{slug}View specific plugin
/plugins/{slug}/detailDetailed plugin view/edit

Organization Routes

RoutePurposeAccess
/organization/{org}Organization detailsOrg members
/organization/{org}/settingsOrg settingsOrg owner
/organization/{org}/membersMember managementOrg owner

Team Routes

RoutePurposeAccess
/organization/{org}/{team}Team dashboardTeam members
/organization/{org}/{team}/pluginsTeam pluginsTeam members
/organization/{org}/{team}/settingsTeam settingsTeam admin

User Dashboard Features

/dashboard

  1. My Plugins

    • List of plugins created by user
    • Quick edit access
    • Publish status
    • Install count
  2. Favorite Plugins

    • Saved plugins from other users
    • Quick access for common use
    • Remove from favorites
  3. Activity Feed

    • Recent plugin installations
    • Team activity
    • Organization updates
  4. Quick Actions

    • Create new plugin
    • Browse explorer
    • Team navigation

User Settings

/settings

  1. Profile

    • Display name (from GitHub)
    • Avatar (from GitHub)
    • Bio/description
  2. Notifications

    • Email preferences
    • In-app notifications
    • Activity digests
  3. Connected Accounts

    • GitHub connection status
    • Re-authorize if needed
  4. Organizations

    • List of memberships
    • Leave organization option
  5. Danger Zone

    • Delete account
    • Export data

User Experience Principles

  1. GitHub-First Identity

    • All user data sourced from GitHub
    • No separate profile management
    • Seamless OAuth experience
  2. Organization-Centric

    • Users must belong to organization
    • Plugins are team-scoped
    • Collaboration is default
  3. Progressive Access

    • Anonymous can browse
    • Login unlocks creation
    • Team membership enables publishing
  4. Deeplink Integration

    • Every plugin is installable
    • One-click to Cursor IDE
    • Frictionless developer experience