Skip to main content
Every builder on Buildstory has a profile that showcases their identity, experience, and work. Profiles are created automatically and can be customized to reflect your personality and building journey.

Profile Creation

Profiles are created just-in-time when you first sign up:
1

Sign up with Clerk

Authenticate using email/password or OAuth (Google, GitHub)
2

Automatic profile generation

The system calls ensureProfile() to create your profile row in the database using your Clerk user ID and display name
3

Complete your profile

Add your username, bio, location, and social links in Settings
The 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
  • 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:
1

Update identity

Change your display name, username, or upload a new profile picture
2

Add location and bio

Select your country and region, write a bio describing your building journey
3

Set experience level

Choose the option that best matches your AI building experience
4

Connect social accounts

Link your website, Twitter, GitHub, Twitch, and streaming URLs
5

Save changes

All updates are validated and saved to the database immediately

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 results

Profile Visibility

Profiles can be in three states:
  1. Active - Visible to all users, appears in listings
  2. Hidden - Soft-hidden by moderators, excluded from public queries
  3. Banned - Hard ban with reason, user redirected to /banned page
Banned and hidden profiles are automatically filtered from all public-facing queries via the isProfileVisible helper.

Admin & Moderation

User roles are stored in profiles.role:
  • user (default) - Standard builder account
  • moderator - Can access admin dashboard, manage users
  • admin - Full platform access including role assignment and Sanity Studio
Super-admins can be configured via the ADMIN_USER_IDS environment variable (Clerk user IDs, comma-separated).

Build docs developers (and LLMs) love