import Layout from "@/components/Layout"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import RealmSwitcher, { REALM_OPTIONS, RealmKey, } from "@/components/settings/RealmSwitcher"; import { useAuth } from "@/contexts/AuthContext"; import { useMemo, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { cn } from "@/lib/utils"; export default function Realms() { const { user, profile, roles, updateProfile } = useAuth(); const navigate = useNavigate(); const [activating, setActivating] = useState(null); const [selectedRealm, setSelectedRealm] = useState( (profile as any)?.user_type ?? null, ); const [experience, setExperience] = useState( (profile as any)?.experience_level || "beginner", ); const [saving, setSaving] = useState(false); const lastRealm = (profile as any)?.user_type as RealmKey | undefined; const canSeeStaff = useMemo( () => roles.some((r) => ["owner", "admin", "founder", "staff", "employee"].includes( r.toLowerCase(), ), ), [roles], ); const visible = useMemo( () => REALM_OPTIONS.filter((o) => (o.id === "staff" ? canSeeStaff : true)), [canSeeStaff], ); return (
Realms

Choose your realm

Your dashboard adapts to the selected realm. Last used realm is highlighted.

{/* Realm & Path manager */}
{ if (!selectedRealm) return; if (!user) { navigate("/onboarding"); return; } setSaving(true); try { await updateProfile({ user_type: selectedRealm, experience_level: experience, } as any); navigate("/dashboard", { replace: true }); } finally { setSaving(false); } }} saving={saving} />
Contributor network

Mentors, Maintainers, and Shipmates

Grow the platform with us—teach, steward projects, and ship products together.

Mentors Guide builders through 1:1 sessions, clinics, and code reviews. Maintainers Own modules, triage issues, and lead roadmap execution. Shipmates Join product squads shipping across Labs, Platform, and Community.
Teams hiring now

Across Labs, Platform, and Community

Apply to active squads and help us accelerate delivery.

Labs squads R&D and experimental products.
  • Realtime Engine
  • Gameplay Systems
  • Mentorship Programs
Platform squads Core app, APIs, and reliability.
  • Edge Functions & Status
  • Auth & Profiles
  • Content & Docs
Community squads Growth, safety, and events.
  • Moderation & Safety
  • Events & Partnerships
  • Creator Success
); }