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