Artist Join Flow Diagram
Complete flow diagram showing the artist platform join experience from start to finish.
User Join Flow
START: User visits extrachill.link/join
│
├─ Domain Mapping: sunrise.php redirects to artist.extrachill.com/login/?from_join=true
│
├─ AUTHENTICATION
│ ├─ User sees join flow modal (inc/join/templates/join-flow-modal.php)
│ ├─ Existing Account → login
│ └─ New Account → register
│
├─ POST-AUTH ROUTING
│ ├─ Function: ec_join_flow_login_redirect()
│ ├─ If user already has artists → redirect to /manage-link-page/
│ └─ Otherwise → redirect to /create-artist/
│
├─ ARTIST CREATION
│ ├─ User completes artist creation on /create-artist/
│ └─ Artist/link page creation is handled by the create-artist flow (outside the join modal)
│
├─ LINK PAGE EDITING
│ ├─ Link pages are edited in Gutenberg with the Link Page Editor block
│ └─ Public URLs resolve at extrachill.link/{artist-slug}
│
└─ COMPLETE: User can manage link page and artist profile
## Data Created During Join Flow
The join modal itself does not create artist/link page posts. It flags the session as a join flow entry and routes the user to the appropriate management page after authentication.
## Error Handling
IF user account creation fails
├─ Display error message
├─ Allow retry
└─ Log error for admin review
IF artist profile creation fails
├─ Display error message
└─ Log error for debugging
IF link page creation fails
├─ Notify user
├─ Offer to create manually
└─ Log error
## Security Checks
1. **Nonce Verification**
- All form submissions verify nonces
- Prevents CSRF attacks
2. **Capability Checks**
- Only logged-in users can join
- Only profile owner can edit profile/link page
- Only roster members can access shared settings
3. **Data Validation**
- Email validation (valid format, not already used)
- Username validation (unique, alphanumeric)
- Password validation (strength requirements)
- Slug validation (unique, URL-safe)
4. **Rate Limiting**
- Login attempts: 5 attempts per 15 minutes
- Registration: 1 account per 24 hours per IP (optional)
- API calls: 60 requests per minute (authenticated)
## Performance Optimizations
1. **Modal-Only Entry Point**
- Join flow modal only renders with `from_join` parameter
- No HTML overhead on regular login pages
2. **Transient Storage**
- Join flow session flags stored during auth
- Allows state recovery if redirect fails
3. **Direct Redirect Pattern**
- Post-auth redirect to appropriate page (create-artist or manage-link-page)
- No intermediate processing steps
## Related Documentation
- [Artist Platform CLAUDE.md](/docs/extrachill-artist-platform/claude/) - Complete architecture
- [Join Flow System](/docs/extrachill-artist-platform/claude/#join-flow-system) - Technical details
- [Artist Creator Block](https://chubes.net/docs/extrachill-artist-platform/artist-profiles/artist-profile-management/) - Profile creation workflow