Profile Creation
Profiles are created just-in-time when you first sign up:Automatic profile generation
The system calls
ensureProfile() to create your profile row in the database using your Clerk user ID and display nameThe
ensureProfile function is wrapped in React cache() for per-request deduplication, so it’s safe to call multiple times without redundant database queries.Profile Fields
Your profile includes:Identity
- Display name (required) - Your public name
- Username (required, unique) - Your handle for @mentions and profile URL
- 3-30 characters
- Lowercase letters, numbers, hyphens, underscores
- Must start and end with letter or number
- Profile picture - Custom avatar uploaded via Clerk (auto-cropped to square)
About
- Bio - Tell others about yourself (supports simple markdown)
Location
- Country - ISO 3166-1 alpha-2 country code (e.g., US, GB, IE)
- Region - ISO 3166-2 subdivision code (state/province)
Experience
- Experience level - Choose from:
- “Getting started” - New to building with AI
- “Built a few things” - Shipped a project or two
- “Ships constantly” - Building with AI daily
Social Links
- Website - Your personal site or portfolio
- X / Twitter - Twitter handle (without @)
- GitHub - GitHub username
- Twitch - Twitch channel URL
- Stream URL - YouTube Live or other streaming platform
Customizing Your Profile
Navigate to Settings from the app sidebar to edit your profile:Username Availability
When editing your username, the form performs real-time availability checks:- Checking - Debounced query running (400ms delay)
- Available ✓ - Username is free to claim
- Taken ✗ - Already claimed by another user
- Invalid ✗ - Doesn’t match format requirements
Your username determines your profile URL:
buildstory.com/profiles/{username}Privacy Settings
Allow Team Invites
Control whether other builders can send you invitations to join their projects:- Enabled (default) - You’ll receive direct invites and appear in search results
- Disabled - You won’t receive invites and won’t be discoverable for team formation
Public visibility
Your profile is visible to all Buildstory users when you’re registered for an event
Team discovery
Toggle
allowInvites to control whether you appear in project owner search resultsProfile Visibility
Profiles can be in three states:- Active - Visible to all users, appears in listings
- Hidden - Soft-hidden by moderators, excluded from public queries
- Banned - Hard ban with reason, user redirected to
/bannedpage
Admin & Moderation
User roles are stored inprofiles.role:
- user (default) - Standard builder account
- moderator - Can access admin dashboard, manage users
- admin - Full platform access including role assignment and Sanity Studio
ADMIN_USER_IDS environment variable (Clerk user IDs, comma-separated).