Clerk + Turso ready role architecture
Join RoamPK as anyone in the travel ecosystem.
Tourists, local users, hotels, hostels, cafés, SIM partners, guides, food experts, emergency teams, and admins all share one extensible role model.
Active role preview
Tourist / Traveler
Book hotels, follow routes, save destinations, request guides, and manage travel plans.
Pick a Role
Adding another role later is one new object in src/lib/roles.ts — tiny door, huge hallway.
Traveler
Partner
Community
Operations
Role-Aware Onboarding Form
UI-only today; Clerk owns identity, Turso owns roles and partner profiles later.
Implementation Notes
Clerk stores identity, session, email verification, and auth providers.
Turso stores app truth: roles, partner verification, follows, and role-specific metadata.
Clerk public metadata can cache the active role for fast UI rendering, but Turso should remain the source of truth.
users - id - clerk_user_id - display_name - email - active_role - created_at user_roles - id - user_id - role - status follows - id - follower_user_id - target_type - target_id - created_at partner_profiles - id - user_id - role - business_name - verification_status - metadata_json
Follow Anything
Users can follow people, partners, places, routes, and future objects without redesigning the database.