Prettier format pending files

This commit is contained in:
Builder.io 2025-11-12 05:06:07 +00:00
parent 21bb72a467
commit 159063a0aa
16 changed files with 176 additions and 62 deletions

View file

@ -68,9 +68,9 @@ export async function getCourses(req: Request) {
}); });
} catch (error: any) { } catch (error: any) {
console.error("Error fetching courses:", error); console.error("Error fetching courses:", error);
return new Response( return new Response(JSON.stringify({ error: "Failed to fetch courses" }), {
JSON.stringify({ error: "Failed to fetch courses" }), status: 500,
{ status: 500, headers: { "Content-Type": "application/json" } }, headers: { "Content-Type": "application/json" },
); });
} }
} }

View file

@ -573,9 +573,18 @@ const App = () => (
{/* Ethos Guild Routes */} {/* Ethos Guild Routes */}
<Route path="/ethos/library" element={<TrackLibrary />} /> <Route path="/ethos/library" element={<TrackLibrary />} />
<Route path="/ethos/artists/:userId" element={<ArtistProfile />} /> <Route
<Route path="/ethos/settings" element={<ArtistSettings />} /> path="/ethos/artists/:userId"
<Route path="/ethos/licensing" element={<LicensingDashboard />} /> element={<ArtistProfile />}
/>
<Route
path="/ethos/settings"
element={<ArtistSettings />}
/>
<Route
path="/ethos/licensing"
element={<LicensingDashboard />}
/>
<Route path="/support" element={<Support />} /> <Route path="/support" element={<Support />} />
<Route path="/status" element={<Status />} /> <Route path="/status" element={<Status />} />

View file

@ -174,9 +174,10 @@ export default function CreatorProfile() {
<CardContent> <CardContent>
<div className="flex flex-wrap gap-2"> <div className="flex flex-wrap gap-2">
{creator.skills.map((skill) => { {creator.skills.map((skill) => {
const endorsement = creator.aethex_skill_endorsements?.find( const endorsement =
(e) => e.skill === skill creator.aethex_skill_endorsements?.find(
); (e) => e.skill === skill,
);
return ( return (
<Badge <Badge
key={skill} key={skill}
@ -214,7 +215,7 @@ export default function CreatorProfile() {
<span className="text-sm font-medium text-amber-300"> <span className="text-sm font-medium text-amber-300">
{creator.aethex_skill_endorsements.reduce( {creator.aethex_skill_endorsements.reduce(
(sum, e) => sum + e.count, (sum, e) => sum + e.count,
0 0,
)}{" "} )}{" "}
total endorsements total endorsements
</span> </span>

View file

@ -169,7 +169,9 @@ export default function FoundationAchievements() {
<Trophy className="h-8 w-8 text-red-400" /> <Trophy className="h-8 w-8 text-red-400" />
<div> <div>
<h1 className="text-3xl font-bold">Achievements</h1> <h1 className="text-3xl font-bold">Achievements</h1>
<p className="text-slate-300">Earn badges and unlock rewards</p> <p className="text-slate-300">
Earn badges and unlock rewards
</p>
</div> </div>
</div> </div>
@ -200,7 +202,9 @@ export default function FoundationAchievements() {
</Card> </Card>
<Card className="bg-slate-800/30 border-slate-700"> <Card className="bg-slate-800/30 border-slate-700">
<CardContent className="p-6"> <CardContent className="p-6">
<p className="text-sm text-slate-400 mb-1">Total Points</p> <p className="text-sm text-slate-400 mb-1">
Total Points
</p>
<p className="text-2xl font-bold text-red-400"> <p className="text-2xl font-bold text-red-400">
{totalPoints} {totalPoints}
</p> </p>
@ -211,7 +215,9 @@ export default function FoundationAchievements() {
<p className="text-sm text-slate-400 mb-1"> <p className="text-sm text-slate-400 mb-1">
Rarest Badge Rarest Badge
</p> </p>
<p className="text-2xl font-bold text-red-400">Platinum</p> <p className="text-2xl font-bold text-red-400">
Platinum
</p>
</CardContent> </CardContent>
</Card> </Card>
</div> </div>
@ -262,7 +268,9 @@ export default function FoundationAchievements() {
}`} }`}
> >
<CardContent className="p-6 flex flex-col items-center text-center"> <CardContent className="p-6 flex flex-col items-center text-center">
<div className="text-5xl mb-4">{achievement.icon}</div> <div className="text-5xl mb-4">
{achievement.icon}
</div>
<h3 className="font-bold text-white mb-2"> <h3 className="font-bold text-white mb-2">
{achievement.name} {achievement.name}
@ -274,7 +282,9 @@ export default function FoundationAchievements() {
<div className="flex items-center justify-center gap-2 mb-4"> <div className="flex items-center justify-center gap-2 mb-4">
<Badge <Badge
className={difficultyColors[achievement.difficulty]} className={
difficultyColors[achievement.difficulty]
}
> >
{achievement.difficulty.toUpperCase()} {achievement.difficulty.toUpperCase()}
</Badge> </Badge>
@ -315,8 +325,9 @@ export default function FoundationAchievements() {
Start Earning Badges Start Earning Badges
</h3> </h3>
<p className="text-slate-400 mb-6 max-w-2xl mx-auto"> <p className="text-slate-400 mb-6 max-w-2xl mx-auto">
Sign in to track your achievements, earn points, and unlock Sign in to track your achievements, earn points, and
exclusive rewards as you progress through Foundation courses. unlock exclusive rewards as you progress through
Foundation courses.
</p> </p>
<Button <Button
onClick={() => navigate("/login")} onClick={() => navigate("/login")}

View file

@ -222,9 +222,7 @@ export default function FoundationCurriculum() {
key={diff.value} key={diff.value}
onClick={() => { onClick={() => {
setSelectedDifficulty( setSelectedDifficulty(
selectedDifficulty === diff.value selectedDifficulty === diff.value ? null : diff.value,
? null
: diff.value,
); );
}} }}
className={`px-4 py-2 rounded-lg transition ${ className={`px-4 py-2 rounded-lg transition ${
@ -264,9 +262,7 @@ export default function FoundationCurriculum() {
key={course.id} key={course.id}
className="bg-slate-800/30 border-slate-700 hover:border-red-500/50 transition overflow-hidden cursor-pointer" className="bg-slate-800/30 border-slate-700 hover:border-red-500/50 transition overflow-hidden cursor-pointer"
onClick={() => onClick={() =>
navigate( navigate(`/foundation/curriculum/${course.slug}`)
`/foundation/curriculum/${course.slug}`,
)
} }
> >
{course.cover_image_url && ( {course.cover_image_url && (
@ -289,7 +285,9 @@ export default function FoundationCurriculum() {
</div> </div>
<div className="flex gap-2 mb-4"> <div className="flex gap-2 mb-4">
<Badge className={difficultyColors[course.difficulty]}> <Badge
className={difficultyColors[course.difficulty]}
>
{course.difficulty.charAt(0).toUpperCase() + {course.difficulty.charAt(0).toUpperCase() +
course.difficulty.slice(1)} course.difficulty.slice(1)}
</Badge> </Badge>

View file

@ -39,7 +39,10 @@ export default function ClientContracts() {
<p className="text-slate-400 mb-6"> <p className="text-slate-400 mb-6">
Contract management coming soon Contract management coming soon
</p> </p>
<Button variant="outline" onClick={() => navigate("/hub/client")}> <Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal Back to Portal
</Button> </Button>
</CardContent> </CardContent>

View file

@ -39,7 +39,10 @@ export default function ClientDashboard() {
<p className="text-slate-400 mb-6"> <p className="text-slate-400 mb-6">
Advanced dashboard analytics coming soon Advanced dashboard analytics coming soon
</p> </p>
<Button variant="outline" onClick={() => navigate("/hub/client")}> <Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal Back to Portal
</Button> </Button>
</CardContent> </CardContent>

View file

@ -338,7 +338,9 @@ export default function ClientHub() {
<Button <Button
variant="ghost" variant="ghost"
size="sm" size="sm"
onClick={() => navigate(`/hub/client/projects/${project.id}`)} onClick={() =>
navigate(`/hub/client/projects/${project.id}`)
}
> >
View Details View Details
</Button> </Button>

View file

@ -39,7 +39,10 @@ export default function ClientInvoices() {
<p className="text-slate-400 mb-6"> <p className="text-slate-400 mb-6">
Invoice tracking coming soon Invoice tracking coming soon
</p> </p>
<Button variant="outline" onClick={() => navigate("/hub/client")}> <Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal Back to Portal
</Button> </Button>
</CardContent> </CardContent>

View file

@ -56,7 +56,8 @@ const mockProjects: ClientProject[] = [
{ {
id: 2, id: 2,
name: "AI Integration Project", name: "AI Integration Project",
description: "Integration of AI-powered features into existing game platform", description:
"Integration of AI-powered features into existing game platform",
status: "In Progress", status: "In Progress",
progress: 45, progress: 45,
startDate: "2025-01-15", startDate: "2025-01-15",
@ -113,8 +114,7 @@ export default function ClientProjects() {
const matchesSearch = const matchesSearch =
project.name.toLowerCase().includes(search.toLowerCase()) || project.name.toLowerCase().includes(search.toLowerCase()) ||
project.description.toLowerCase().includes(search.toLowerCase()); project.description.toLowerCase().includes(search.toLowerCase());
const matchesStatus = const matchesStatus = !selectedStatus || project.status === selectedStatus;
!selectedStatus || project.status === selectedStatus;
return matchesSearch && matchesStatus; return matchesSearch && matchesStatus;
}); });
@ -188,7 +188,7 @@ export default function ClientProjects() {
key={status} key={status}
onClick={() => onClick={() =>
setSelectedStatus( setSelectedStatus(
selectedStatus === status ? null : status selectedStatus === status ? null : status,
) )
} }
className={`px-4 py-2 rounded-lg transition ${ className={`px-4 py-2 rounded-lg transition ${
@ -276,8 +276,8 @@ export default function ClientProjects() {
<div className="flex items-center gap-2 text-slate-300"> <div className="flex items-center gap-2 text-slate-300">
<TrendingUp className="h-4 w-4 text-slate-500" /> <TrendingUp className="h-4 w-4 text-slate-500" />
<span> <span>
${project.spent.toLocaleString()} / ${project.spent.toLocaleString()} / $
${project.budget.toLocaleString()} {project.budget.toLocaleString()}
</span> </span>
</div> </div>
</div> </div>

View file

@ -39,7 +39,10 @@ export default function ClientReports() {
<p className="text-slate-400 mb-6"> <p className="text-slate-400 mb-6">
Detailed project reports and analytics coming soon Detailed project reports and analytics coming soon
</p> </p>
<Button variant="outline" onClick={() => navigate("/hub/client")}> <Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal Back to Portal
</Button> </Button>
</CardContent> </CardContent>

View file

@ -39,7 +39,10 @@ export default function ClientSettings() {
<p className="text-slate-400 mb-6"> <p className="text-slate-400 mb-6">
Account settings and preferences coming soon Account settings and preferences coming soon
</p> </p>
<Button variant="outline" onClick={() => navigate("/hub/client")}> <Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal Back to Portal
</Button> </Button>
</CardContent> </CardContent>

View file

@ -58,7 +58,7 @@ export default function OpportunityDetail() {
limit: 3, limit: 3,
}); });
setRelatedOpportunities( setRelatedOpportunities(
relatedResult.data.filter((opp) => opp.id !== id) relatedResult.data.filter((opp) => opp.id !== id),
); );
} catch (error) { } catch (error) {
console.error("Failed to fetch opportunity:", error); console.error("Failed to fetch opportunity:", error);

View file

@ -139,9 +139,7 @@ export default function OpportunityPostForm() {
toast({ toast({
title: "Error", title: "Error",
description: description:
error instanceof Error error instanceof Error ? error.message : "Failed to post opportunity",
? error.message
: "Failed to post opportunity",
variant: "destructive", variant: "destructive",
}); });
} finally { } finally {

View file

@ -7,11 +7,13 @@
## Session 1: The Strategic Vision (Your First Prompt) ## Session 1: The Strategic Vision (Your First Prompt)
### **User's Opening Question** ### **User's Opening Question**
> "Ok what about labs, foundation, nexus? corp?" > "Ok what about labs, foundation, nexus? corp?"
**Context:** You asked about the status of the OTHER arms of AeThex (beyond Ethos Guild and GameForge which were already complete). **Context:** You asked about the status of the OTHER arms of AeThex (beyond Ethos Guild and GameForge which were already complete).
### **Initial Status** ### **Initial Status**
- ✅ **Ethos Guild** (music marketplace) - COMPLETE - ✅ **Ethos Guild** (music marketplace) - COMPLETE
- ✅ **GameForge** (game dev platform) - COMPLETE - ✅ **GameForge** (game dev platform) - COMPLETE
- ❓ **Labs** - Just landing page - ❓ **Labs** - Just landing page
@ -32,12 +34,14 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
#### **The Two Cash Registers:** #### **The Two Cash Registers:**
**1. NEXUS** - Scalable commission-based marketplace **1. NEXUS** - Scalable commission-based marketplace
- **Why:** Creators list themselves, clients post opportunities, AeThex takes 20% commission per transaction - **Why:** Creators list themselves, clients post opportunities, AeThex takes 20% commission per transaction
- **Business Model:** High volume, low touch (automated) - **Business Model:** High volume, low touch (automated)
- **Target:** Thousands of creators × thousands of opportunities = recurring revenue - **Target:** Thousands of creators × thousands of opportunities = recurring revenue
- **Implementation:** Full marketplace system (profiles, opportunities, applications, messaging, contracts, payments) - **Implementation:** Full marketplace system (profiles, opportunities, applications, messaging, contracts, payments)
**2. CORP** - High-touch enterprise consulting **2. CORP** - High-touch enterprise consulting
- **Why:** Sell $250k+ contracts to enterprise clients - **Why:** Sell $250k+ contracts to enterprise clients
- **Business Model:** High-value, high-touch (personalized service) - **Business Model:** High-value, high-touch (personalized service)
- **Target:** 50-100 enterprise clients = predictable revenue - **Target:** 50-100 enterprise clients = predictable revenue
@ -46,6 +50,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
#### **The Community Funnel (Supporting Both):** #### **The Community Funnel (Supporting Both):**
**3. FOUNDATION** - Non-profit top-of-funnel **3. FOUNDATION** - Non-profit top-of-funnel
- **Why:** Attract creators for FREE → educate them → when they're skilled enough, funnelize to NEXUS marketplace - **Why:** Attract creators for FREE → educate them → when they're skilled enough, funnelize to NEXUS marketplace
- **Business Model:** Free education = trust + community = creator acquisition cost - **Business Model:** Free education = trust + community = creator acquisition cost
- **Target:** 10,000+ community members → 1,000 active creators on Nexus - **Target:** 10,000+ community members → 1,000 active creators on Nexus
@ -57,12 +62,12 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
### **Your Priority Framework** ### **Your Priority Framework**
| Arm | Status | System Type | Priority | Reason | | Arm | Status | System Type | Priority | Reason |
|-----|--------|------------|----------|--------| | -------------- | ------------ | --------------------------- | ------------------ | --------------------------------- |
| **Nexus** | Landing page | **Full marketplace** | **P1 (Critical)** | Scalable cash register | | **Nexus** | Landing page | **Full marketplace** | **P1 (Critical)** | Scalable cash register |
| **Corp** | Landing page | **Client portal** | **P2 (Strategic)** | Enterprise cash register | | **Corp** | Landing page | **Client portal** | **P2 (Strategic)** | Enterprise cash register |
| **Foundation** | Landing page | **Full education platform** | **P3 (Support)** | Top-of-funnel creator acquisition | | **Foundation** | Landing page | **Full education platform** | **P3 (Support)** | Top-of-funnel creator acquisition |
| **Labs** | Landing page | **R&D system** | **Backlog** | Funded by future revenue | | **Labs** | Landing page | **R&D system** | **Backlog** | Funded by future revenue |
--- ---
@ -71,9 +76,11 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
### **What Was Built: Databases** ### **What Was Built: Databases**
#### **Foundation System Migration** #### **Foundation System Migration**
**File:** `code/supabase/migrations/20250214_add_foundation_system.sql` (340 lines) **File:** `code/supabase/migrations/20250214_add_foundation_system.sql` (340 lines)
**Why Built:** **Why Built:**
- Store courses, modules, lessons (curriculum) - Store courses, modules, lessons (curriculum)
- Track user progress through courses (engagement) - Track user progress through courses (engagement)
- Manage mentorship requests/sessions (support) - Manage mentorship requests/sessions (support)
@ -81,6 +88,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
- Approve mentors (quality control) - Approve mentors (quality control)
**Tables Created:** **Tables Created:**
``` ```
├─ foundation_courses (store educational content) ├─ foundation_courses (store educational content)
├─ foundation_course_modules (organize courses into chapters) ├─ foundation_course_modules (organize courses into chapters)
@ -96,9 +104,11 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
``` ```
#### **Nexus Marketplace Migration** #### **Nexus Marketplace Migration**
**File:** `code/supabase/migrations/20250214_add_nexus_marketplace.sql` (407 lines) **File:** `code/supabase/migrations/20250214_add_nexus_marketplace.sql` (407 lines)
**Why Built:** **Why Built:**
- Store creator profiles (talent supply) - Store creator profiles (talent supply)
- Store opportunity postings (talent demand) - Store opportunity postings (talent demand)
- Track applications (matching) - Track applications (matching)
@ -107,6 +117,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
- Track commissions (20% split) - Track commissions (20% split)
**Tables Created:** **Tables Created:**
``` ```
├─ nexus_creator_profiles (creator portfolio + rates) ├─ nexus_creator_profiles (creator portfolio + rates)
├─ nexus_portfolio_items (creator project showcase) ├─ nexus_portfolio_items (creator project showcase)
@ -126,14 +137,17 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
### **What Was Built: Admin Dashboards** ### **What Was Built: Admin Dashboards**
#### **Foundation Admin Dashboard** #### **Foundation Admin Dashboard**
**File:** `code/client/components/admin/AdminFoundationManager.tsx` (589 lines) **File:** `code/client/components/admin/AdminFoundationManager.tsx` (589 lines)
**Why Built:** **Why Built:**
- Approve/reject mentor applications (quality gate) - Approve/reject mentor applications (quality gate)
- Publish/unpublish courses (content management) - Publish/unpublish courses (content management)
- View achievement stats (monitor engagement) - View achievement stats (monitor engagement)
**Features:** **Features:**
``` ```
├─ Mentor Approval Tab ├─ Mentor Approval Tab
│ └─ List pending mentors, approve with one click │ └─ List pending mentors, approve with one click
@ -146,14 +160,17 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
``` ```
#### **Nexus Admin Dashboard** #### **Nexus Admin Dashboard**
**File:** `code/client/components/admin/AdminNexusManager.tsx` (623 lines) **File:** `code/client/components/admin/AdminNexusManager.tsx` (623 lines)
**Why Built:** **Why Built:**
- Moderate opportunity postings (prevent spam/abuse) - Moderate opportunity postings (prevent spam/abuse)
- Resolve disputes between creators/clients (trust) - Resolve disputes between creators/clients (trust)
- Track commission revenue (financial visibility) - Track commission revenue (financial visibility)
**Features:** **Features:**
``` ```
├─ Opportunity Moderation Tab ├─ Opportunity Moderation Tab
│ ├─ List all opportunities │ ├─ List all opportunities
@ -194,9 +211,11 @@ Nexus Admin APIs:
## Session 5: Wiring Into Admin Panel ## Session 5: Wiring Into Admin Panel
### **What Changed** ### **What Changed**
Added Foundation & Nexus tabs to `/admin` page Added Foundation & Nexus tabs to `/admin` page
**Files Modified:** **Files Modified:**
- `code/client/pages/Admin.tsx` - `code/client/pages/Admin.tsx`
- Added imports for `AdminFoundationManager` and `AdminNexusManager` - Added imports for `AdminFoundationManager` and `AdminNexusManager`
- Added two new `<TabsContent>` sections in admin tabs - Added two new `<TabsContent>` sections in admin tabs
@ -208,18 +227,22 @@ Added Foundation & Nexus tabs to `/admin` page
## Session 6: Domain & DNS Crisis ## Session 6: Domain & DNS Crisis
### **What Happened** ### **What Happened**
You accidentally reset DNS on Hostinger domain. You accidentally reset DNS on Hostinger domain.
### **Why It Matters** ### **Why It Matters**
- All Discord OAuth redirects depend on correct domain (`https://aethex.dev/api/discord/oauth/callback`) - All Discord OAuth redirects depend on correct domain (`https://aethex.dev/api/discord/oauth/callback`)
- Activity manifest depends on domain (`https://aethex.dev`) - Activity manifest depends on domain (`https://aethex.dev`)
- SSL certificates depend on correct DNS - SSL certificates depend on correct DNS
### **What Was Fixed** ### **What Was Fixed**
- Corrected DNS records to point to Vercel - Corrected DNS records to point to Vercel
- Fixed SSL issue on root domain - Fixed SSL issue on root domain
### **Why This Blocks Everything** ### **Why This Blocks Everything**
- Users can't sign in with Discord - Users can't sign in with Discord
- All OAuth linking fails - All OAuth linking fails
- Activity integration fails - Activity integration fails
@ -230,10 +253,13 @@ You accidentally reset DNS on Hostinger domain.
## Session 7: The Lost Context - Full Ecosystem Audit ## Session 7: The Lost Context - Full Ecosystem Audit
### **What Happened** ### **What Happened**
You said: "I'm losing myself in my own ecosystem" and asked for an audit. You said: "I'm losing myself in my own ecosystem" and asked for an audit.
### **Root Cause** ### **Root Cause**
Over time, 100+ routes were created for various purposes: Over time, 100+ routes were created for various purposes:
- Some legacy (from before the strategic pivot to monetization) - Some legacy (from before the strategic pivot to monetization)
- Some duplicate (same functionality, different paths) - Some duplicate (same functionality, different paths)
- Some incomplete (routes exist but features not built) - Some incomplete (routes exist but features not built)
@ -241,6 +267,7 @@ Over time, 100+ routes were created for various purposes:
### **The Routes We Found** ### **The Routes We Found**
#### **Strategic Routes (Supporting Monetization)** #### **Strategic Routes (Supporting Monetization)**
``` ```
/nexus → Landing page for Nexus /nexus → Landing page for Nexus
/creators → Creator directory (NEXUS marketplace) /creators → Creator directory (NEXUS marketplace)
@ -262,6 +289,7 @@ Over time, 100+ routes were created for various purposes:
``` ```
#### **Legacy Routes (Pre-Monetization Pivot)** #### **Legacy Routes (Pre-Monetization Pivot)**
``` ```
/consulting → OLD, duplicate of /corp /consulting → OLD, duplicate of /corp
/game-development → OLD, duplicate of /gameforge /game-development → OLD, duplicate of /gameforge
@ -276,6 +304,7 @@ Over time, 100+ routes were created for various purposes:
``` ```
#### **Why They Exist** #### **Why They Exist**
Each was built for a reason at the time, but many became redundant as the business model evolved from "everything marketplace" to "focused monetization." Each was built for a reason at the time, but many became redundant as the business model evolved from "everything marketplace" to "focused monetization."
--- ---
@ -283,23 +312,24 @@ Each was built for a reason at the time, but many became redundant as the busine
## Session 8: The Strategic Reset - Your Vision Clarified ## Session 8: The Strategic Reset - Your Vision Clarified
### **Your Statement** ### **Your Statement**
> "Our `"Go-to-Market"` Roadmap is 100% focused on one thing: Monetization. > "Our `"Go-to-Market"` Roadmap is 100% focused on one thing: Monetization.
> Our two `"cash registers"` are `NEXUS` (commissions) and `CORP` (contracts)." > Our two `"cash registers"` are `NEXUS` (commissions) and `CORP` (contracts)."
### **What This Means for Routes/Systems** ### **What This Means for Routes/Systems**
| Route | Purpose | Keep/Remove | | Route | Purpose | Keep/Remove |
|-------|---------|-----------| | ------------------ | --------------------------------- | --------------------- |
| `/nexus/*` | Scalable commission marketplace | **KEEP & ENHANCE** | | `/nexus/*` | Scalable commission marketplace | **KEEP & ENHANCE** |
| `/creators/*` | Creator supply for Nexus | **KEEP & ENHANCE** | | `/creators/*` | Creator supply for Nexus | **KEEP & ENHANCE** |
| `/opportunities/*` | Job demand for Nexus | **KEEP & ENHANCE** | | `/opportunities/*` | Job demand for Nexus | **KEEP & ENHANCE** |
| `/corp/*` | Enterprise landing page | **KEEP** | | `/corp/*` | Enterprise landing page | **KEEP** |
| `/hub/client` | Enterprise client portal | **ADD (new)** | | `/hub/client` | Enterprise client portal | **ADD (new)** |
| `/foundation/*` | Top-of-funnel creator acquisition | **KEEP & BUILD** | | `/foundation/*` | Top-of-funnel creator acquisition | **KEEP & BUILD** |
| `/labs` | R&D division | **LANDING PAGE ONLY** | | `/labs` | R&D division | **LANDING PAGE ONLY** |
| `/consulting` | OLD Corp landing | **REMOVE** | | `/consulting` | OLD Corp landing | **REMOVE** |
| `/community` | Overlaps with Foundation | **CONSOLIDATE** | | `/community` | Overlaps with Foundation | **CONSOLIDATE** |
| `/wix/*` | Legacy marketing | **REMOVE** | | `/wix/*` | Legacy marketing | **REMOVE** |
--- ---
@ -308,6 +338,7 @@ Each was built for a reason at the time, but many became redundant as the busine
### **The Three Pillars of Monetization** ### **The Three Pillars of Monetization**
1. **NEXUS** (P1 - Scalable Cash Register) 1. **NEXUS** (P1 - Scalable Cash Register)
- **Database:** ✅ Complete (407-line migration) - **Database:** ✅ Complete (407-line migration)
- **Admin:** ✅ Complete (moderation, disputes, commissions) - **Admin:** ✅ Complete (moderation, disputes, commissions)
- **Public UI:** ❌ Needs enhancement - **Public UI:** ❌ Needs enhancement
@ -316,6 +347,7 @@ Each was built for a reason at the time, but many became redundant as the busine
- Applications need: messaging system, contract management - Applications need: messaging system, contract management
2. **CORP** (P2 - Enterprise Cash Register) 2. **CORP** (P2 - Enterprise Cash Register)
- **Landing Page:** ✅ Complete - **Landing Page:** ✅ Complete
- **Client Portal:** ❌ NOT BUILT (needs `/hub/client`) - **Client Portal:** ❌ NOT BUILT (needs `/hub/client`)
- Project tracking - Project tracking
@ -333,6 +365,7 @@ Each was built for a reason at the time, but many became redundant as the busine
### **Why All the Duplication Exists** ### **Why All the Duplication Exists**
The ecosystem grew organically: The ecosystem grew organically:
- **Early days:** Build all possible features (everything marketplace) - **Early days:** Build all possible features (everything marketplace)
- **As it grew:** Added more routes, more arms, more features - **As it grew:** Added more routes, more arms, more features
- **No consolidation:** Old routes stayed even when new ones were created - **No consolidation:** Old routes stayed even when new ones were created
@ -346,18 +379,21 @@ The ecosystem grew organically:
### **To Achieve Monetization Goals:** ### **To Achieve Monetization Goals:**
1. **Enhance Nexus UI** (P1) 1. **Enhance Nexus UI** (P1)
- The DATABASE is ready - The DATABASE is ready
- The ADMIN TOOLS are ready - The ADMIN TOOLS are ready
- But the PUBLIC STOREFRONT needs work - But the PUBLIC STOREFRONT needs work
- Users can't see the beautiful marketplace we built - Users can't see the beautiful marketplace we built
2. **Build Corp Client Portal** (P2) 2. **Build Corp Client Portal** (P2)
- The LANDING PAGE hooks customers - The LANDING PAGE hooks customers
- But there's nowhere for PAYING CLIENTS to go - But there's nowhere for PAYING CLIENTS to go
- They can't see projects, invoices, or dashboards - They can't see projects, invoices, or dashboards
- You're leaving money on the table - You're leaving money on the table
3. **Build Foundation Public UI** (P3) 3. **Build Foundation Public UI** (P3)
- The DATABASE is ready - The DATABASE is ready
- The ADMIN TOOLS are ready - The ADMIN TOOLS are ready
- But potential creators don't see the free education - But potential creators don't see the free education
@ -385,6 +421,7 @@ Each feature exists because of ONE of these reasons:
### **Your Next Move** ### **Your Next Move**
Focus on making the THREE CASH REGISTERS visible to users: Focus on making the THREE CASH REGISTERS visible to users:
- Nexus storefront (creators browse, post, apply, earn 80% commission) - Nexus storefront (creators browse, post, apply, earn 80% commission)
- Corp portal (clients see projects, invoices, dashboards) - Corp portal (clients see projects, invoices, dashboards)
- Foundation curriculum (future creators learn for free) - Foundation curriculum (future creators learn for free)

View file

@ -20,11 +20,13 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Current Ecosystem Structure (By Business Division) ## Current Ecosystem Structure (By Business Division)
### **🟡 LABS** (Yellow) - Research & Development ### **🟡 LABS** (Yellow) - Research & Development
**Landing Page:** `/labs` **Landing Page:** `/labs`
**Sub-pages:** `/labs/explore-research`, `/labs/join-team`, `/labs/get-involved` **Sub-pages:** `/labs/explore-research`, `/labs/join-team`, `/labs/get-involved`
**Status:** ✅ Landing pages complete | ❌ Full system NOT built **Status:** ✅ Landing pages complete | ❌ Full system NOT built
**Legacy/Duplicate:** **Legacy/Duplicate:**
- `/research` → ResearchLabs (OLD legacy page, same as `/labs`) - `/research` → ResearchLabs (OLD legacy page, same as `/labs`)
**Decision:** REMOVE `/research` route, consolidate to `/labs/*` **Decision:** REMOVE `/research` route, consolidate to `/labs/*`
@ -32,9 +34,11 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
--- ---
### **🟢 GAMEFORGE** (Green) - Game Development Platform ### **🟢 GAMEFORGE** (Green) - Game Development Platform
**Landing Page:** `/gameforge` **Landing Page:** `/gameforge`
**Sub-pages:** `/gameforge/start-building`, `/gameforge/view-portfolio`, `/gameforge/join-gameforge` **Sub-pages:** `/gameforge/start-building`, `/gameforge/view-portfolio`, `/gameforge/join-gameforge`
**System Pages:** **System Pages:**
- `/projects` - Project management - `/projects` - Project management
- `/projects/new` - Create project - `/projects/new` - Create project
- `/projects/:projectId/board` - Kanban board - `/projects/:projectId/board` - Kanban board
@ -43,6 +47,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Full system COMPLETE **Status:** ✅ Full system COMPLETE
**Legacy/Duplicate:** **Legacy/Duplicate:**
- `/game-development` (OLD, same as `/gameforge`) - `/game-development` (OLD, same as `/gameforge`)
**Decision:** REMOVE `/game-development` route **Decision:** REMOVE `/game-development` route
@ -50,10 +55,12 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
--- ---
### **🔴 FOUNDATION** (Red) - Education & Community ### **🔴 FOUNDATION** (Red) - Education & Community
**Landing Page:** `/foundation` **Landing Page:** `/foundation`
**Sub-pages:** `/foundation/contribute`, `/foundation/learn-more`, `/foundation/get-involved` **Sub-pages:** `/foundation/contribute`, `/foundation/learn-more`, `/foundation/get-involved`
**Community Section (overlapping):** **Community Section (overlapping):**
- `/community` - Main community/social feed - `/community` - Main community/social feed
- `/community/teams` - FoundationTeams - `/community/teams` - FoundationTeams
- `/community/about` - FoundationAbout - `/community/about` - FoundationAbout
@ -67,7 +74,8 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**CRITICAL ISSUE:** `/foundation/*` and `/community/*` are DUPLICATING the same content! **CRITICAL ISSUE:** `/foundation/*` and `/community/*` are DUPLICATING the same content!
**Decision:** **Decision:**
- `/community` should BECOME `/foundation` - `/community` should BECOME `/foundation`
- `/community/mentorship``/foundation/mentorship` - `/community/mentorship``/foundation/mentorship`
- `/community/mentor/:username``/foundation/mentors/:username` - `/community/mentor/:username``/foundation/mentors/:username`
@ -76,7 +84,9 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
--- ---
### **🟠 ETHOS GUILD** (Orange/Red) - Music & Audio Marketplace ### **🟠 ETHOS GUILD** (Orange/Red) - Music & Audio Marketplace
**Routes:** **Routes:**
- `/community/groups/ethos` - Guild landing - `/community/groups/ethos` - Guild landing
- `/ethos/library` - Track library - `/ethos/library` - Track library
- `/ethos/artists/:userId` - Artist profile - `/ethos/artists/:userId` - Artist profile
@ -86,16 +96,19 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Full system COMPLETE (Supabase tables: ethos_tracks, ethos_artist_profiles) **Status:** ✅ Full system COMPLETE (Supabase tables: ethos_tracks, ethos_artist_profiles)
**Decision:** CLEAN UP - Move Ethos Guild pages to organized `/ethos/*` path **Decision:** CLEAN UP - Move Ethos Guild pages to organized `/ethos/*` path
- `/community/groups/ethos``/ethos` (landing) - `/community/groups/ethos``/ethos` (landing)
- Rest are fine - Rest are fine
--- ---
### **🔵 CORP** (Blue) - Enterprise Consulting ### **🔵 CORP** (Blue) - Enterprise Consulting
**Landing Page:** `/corp` **Landing Page:** `/corp`
**Sub-pages:** `/corp/schedule-consultation`, `/corp/view-case-studies`, `/corp/contact-us` **Sub-pages:** `/corp/schedule-consultation`, `/corp/view-case-studies`, `/corp/contact-us`
**Legacy/Duplicate:** **Legacy/Duplicate:**
- `/consulting` (OLD DevelopmentConsulting page) - `/consulting` (OLD DevelopmentConsulting page)
- `/services` - Services page (overlapping with Corp) - `/services` - Services page (overlapping with Corp)
- `/engage` (Pricing, navigates to `/pricing`) - `/engage` (Pricing, navigates to `/pricing`)
@ -105,6 +118,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Landing pages complete | ❌ Client portal `/hub/client` NOT built **Status:** ✅ Landing pages complete | ❌ Client portal `/hub/client` NOT built
**Decision:** **Decision:**
- REMOVE `/consulting`, `/services` (consolidate to `/corp`) - REMOVE `/consulting`, `/services` (consolidate to `/corp`)
- REMOVE `/wix` and `/wix/*` routes (legacy) - REMOVE `/wix` and `/wix/*` routes (legacy)
- REMOVE `/engage` and `/pricing` (consolidate, decide on one pricing page) - REMOVE `/engage` and `/pricing` (consolidate, decide on one pricing page)
@ -113,9 +127,11 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
--- ---
### **🟣 NEXUS** (Purple) - Talent Marketplace ### **🟣 NEXUS** (Purple) - Talent Marketplace
**Landing Page:** `/nexus` **Landing Page:** `/nexus`
**Creator Network Routes (ALREADY EXIST):** **Creator Network Routes (ALREADY EXIST):**
- `/creators` - CreatorDirectory - `/creators` - CreatorDirectory
- `/creators/:username` - CreatorProfile - `/creators/:username` - CreatorProfile
- `/opportunities` - OpportunitiesHub - `/opportunities` - OpportunitiesHub
@ -124,7 +140,8 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Database complete | ⏳ UI partially built (basic directory exists, needs enhancement) **Status:** ✅ Database complete | ⏳ UI partially built (basic directory exists, needs enhancement)
**Decision:** **Decision:**
- These routes are ALREADY WIRED correctly - These routes are ALREADY WIRED correctly
- Need to ENHANCE with Nexus features (messaging, contracts, payments, 20% commission) - Need to ENHANCE with Nexus features (messaging, contracts, payments, 20% commission)
- NO changes to routes needed - NO changes to routes needed
@ -132,9 +149,11 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
--- ---
### **💜 STAFF** (Purple/Internal) - Employee Portal ### **💜 STAFF** (Purple/Internal) - Employee Portal
**Landing Page:** `/staff` **Landing Page:** `/staff`
**Auth:** `/staff/login` **Auth:** `/staff/login`
**Dashboard:** **Dashboard:**
- `/staff/dashboard` - Operations dashboard - `/staff/dashboard` - Operations dashboard
- `/staff/directory` - Team directory - `/staff/directory` - Team directory
- `/staff/admin` - Admin tools - `/staff/admin` - Admin tools
@ -157,7 +176,9 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
--- ---
### **🔷 DEV-LINK** (Cyan) - External Roblox Platform ### **🔷 DEV-LINK** (Cyan) - External Roblox Platform
**Routes:** **Routes:**
- `/dev-link` - Landing page - `/dev-link` - Landing page
- `/dev-link/waitlist` - Embedded iframe to dev-link.me - `/dev-link/waitlist` - Embedded iframe to dev-link.me
@ -170,6 +191,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Documentation & Learning ## Documentation & Learning
**Routes:** **Routes:**
- `/docs` (nested) - Main docs hub with sub-routes - `/docs` (nested) - Main docs hub with sub-routes
- `/docs/getting-started` - `/docs/getting-started`
- `/docs/platform` - `/docs/platform`
@ -181,6 +203,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
- `/docs/integrations` - `/docs/integrations`
**Legacy/Duplicate:** **Legacy/Duplicate:**
- `/tutorials` (separate Tutorials page, overlaps with `/docs/tutorials`) - `/tutorials` (separate Tutorials page, overlaps with `/docs/tutorials`)
**Status:** ✅ Docs complete with nested routing **Status:** ✅ Docs complete with nested routing
@ -192,6 +215,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## User Profiles & Passport ## User Profiles & Passport
**Routes:** **Routes:**
- `/profile` - User profile/settings - `/profile` - User profile/settings
- `/profile/me` - User profile (same as `/profile`) - `/profile/me` - User profile (same as `/profile`)
- `/profile/applications` - Job applications - `/profile/applications` - Job applications
@ -200,6 +224,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
- `/passport/:username` - Other user passport - `/passport/:username` - Other user passport
**Legacy/Duplicate:** **Legacy/Duplicate:**
- `/developers` - DevelopersDirectory (overlaps with `/creators`) - `/developers` - DevelopersDirectory (overlaps with `/creators`)
- `/developers/:id` (redirects to LegacyPassportRedirect) - `/developers/:id` (redirects to LegacyPassportRedirect)
- `/profiles` (redirects to `/developers`) - `/profiles` (redirects to `/developers`)
@ -207,7 +232,8 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Wired correctly but with legacy redirects **Status:** ✅ Wired correctly but with legacy redirects
**Decision:** **Decision:**
- REMOVE legacy `/developers` and `/profiles` routes - REMOVE legacy `/developers` and `/profiles` routes
- KEEP `/passport/*` for public profiles - KEEP `/passport/*` for public profiles
- KEEP `/profile` for personal settings - KEEP `/profile` for personal settings
@ -218,6 +244,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Community & Social ## Community & Social
**Routes:** **Routes:**
- `/community` - Main social feed - `/community` - Main social feed
- `/community/:tabId` - Dynamic tabs (legacy pattern) - `/community/:tabId` - Dynamic tabs (legacy pattern)
- `/feed` - Alternative feed - `/feed` - Alternative feed
@ -229,6 +256,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ⏳ Partially built **Status:** ⏳ Partially built
**Decision:** **Decision:**
- CONSOLIDATE `/teams``/squads` (keep only `/squads`) - CONSOLIDATE `/teams``/squads` (keep only `/squads`)
- KEEP `/mentee-hub` (will become `/foundation/mentorship` per FOUNDATION consolidation) - KEEP `/mentee-hub` (will become `/foundation/mentorship` per FOUNDATION consolidation)
- CLEAN UP `/community/:tabId` (use explicit routes instead) - CLEAN UP `/community/:tabId` (use explicit routes instead)
@ -238,12 +266,14 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Discord Integration ## Discord Integration
**Routes:** **Routes:**
- `/login` - Login page (has Discord OAuth button) - `/login` - Login page (has Discord OAuth button)
- `/profile/link-discord` - Discord linking - `/profile/link-discord` - Discord linking
- `/discord-verify` - Discord verification code - `/discord-verify` - Discord verification code
- `/activity` - Discord Activity SPA - `/activity` - Discord Activity SPA
**API Endpoints (NOT routes, but important):** **API Endpoints (NOT routes, but important):**
- `/api/discord/oauth/start` - `/api/discord/oauth/start`
- `/api/discord/oauth/callback` - `/api/discord/oauth/callback`
- `/api/discord/activity-auth` - `/api/discord/activity-auth`
@ -259,6 +289,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Admin & Internal ## Admin & Internal
**Routes:** **Routes:**
- `/admin` - Main admin dashboard - `/admin` - Main admin dashboard
- `/admin/docs-sync` - Gitbook sync tool - `/admin/docs-sync` - Gitbook sync tool
- `/staff/*` - Staff portal (see STAFF section above) - `/staff/*` - Staff portal (see STAFF section above)
@ -272,6 +303,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Informational & Legal ## Informational & Legal
**Routes:** **Routes:**
- `/about` - About page - `/about` - About page
- `/contact` - Contact page - `/contact` - Contact page
- `/get-started` - Getting started - `/get-started` - Getting started
@ -288,6 +320,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
- `/terms` - Terms of service - `/terms` - Terms of service
**Legacy/Duplicate:** **Legacy/Duplicate:**
- `/wix/*` pages (legacy, overlaps with Corp info) - `/wix/*` pages (legacy, overlaps with Corp info)
**Status:** ✅ Complete **Status:** ✅ Complete
@ -299,6 +332,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Internal Docs (Notion-based) ## Internal Docs (Notion-based)
**Routes:** **Routes:**
- `/internal-docs/*` - 18 pages for internal governance, ops, finance, etc. - `/internal-docs/*` - 18 pages for internal governance, ops, finance, etc.
**Status:** ✅ Complete **Status:** ✅ Complete
@ -310,6 +344,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Onboarding & Auth ## Onboarding & Auth
**Routes:** **Routes:**
- `/onboarding` - Signup flow - `/onboarding` - Signup flow
- `/login` - Login - `/login` - Login
- `/signup` - Signup redirect - `/signup` - Signup redirect
@ -326,6 +361,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## CONSOLIDATION SUMMARY ## CONSOLIDATION SUMMARY
### 🗑️ **Routes to REMOVE** (15 routes): ### 🗑️ **Routes to REMOVE** (15 routes):
1. `/research` → Merge into `/labs` 1. `/research` → Merge into `/labs`
2. `/game-development` → Merge into `/gameforge` 2. `/game-development` → Merge into `/gameforge`
3. `/consulting` → Merge into `/corp` 3. `/consulting` → Merge into `/corp`
@ -343,6 +379,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
15. `/teams` → Merge into `/squads` 15. `/teams` → Merge into `/squads`
### 🔄 **Routes to RENAME/REORGANIZE** (8 changes): ### 🔄 **Routes to RENAME/REORGANIZE** (8 changes):
1. `/community``/foundation` 1. `/community``/foundation`
2. `/community/teams``/foundation/teams` 2. `/community/teams``/foundation/teams`
3. `/community/about``/foundation/about` 3. `/community/about``/foundation/about`
@ -353,11 +390,13 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
8. `/community/:tabId` → Remove (use explicit routes) 8. `/community/:tabId` → Remove (use explicit routes)
### ✅ **Routes to ADD** (3 new): ### ✅ **Routes to ADD** (3 new):
1. `/hub/client` - Corp client portal (new system) 1. `/hub/client` - Corp client portal (new system)
2. `/foundation/curriculum` - Public courses (Foundation system) 2. `/foundation/curriculum` - Public courses (Foundation system)
3. `/opportunities/new` - Post opportunity form (Nexus system) 3. `/opportunities/new` - Post opportunity form (Nexus system)
### 🟢 **Routes to KEEP** (100+ routes): ### 🟢 **Routes to KEEP** (100+ routes):
All properly structured routes remain as-is All properly structured routes remain as-is
--- ---
@ -406,22 +445,26 @@ All properly structured routes remain as-is
## Implementation Priority ## Implementation Priority
### **Phase 1: Quick Wins (1-2 hours)** ### **Phase 1: Quick Wins (1-2 hours)**
1. Remove legacy routes (Wix, consulting, game-development, research) 1. Remove legacy routes (Wix, consulting, game-development, research)
2. Add 301 redirects where needed 2. Add 301 redirects where needed
3. Update navigation links 3. Update navigation links
### **Phase 2: Consolidation (4-6 hours)** ### **Phase 2: Consolidation (4-6 hours)**
1. Rename `/community``/foundation` 1. Rename `/community``/foundation`
2. Update all internal links 2. Update all internal links
3. Verify all child routes work 3. Verify all child routes work
### **Phase 3: New Systems (P1 Priority)** ### **Phase 3: New Systems (P1 Priority)**
1. Add `/hub/client` (Corp portal) 1. Add `/hub/client` (Corp portal)
2. Add `/foundation/curriculum` (Foundation courses) 2. Add `/foundation/curriculum` (Foundation courses)
3. Add `/opportunities/new` (Nexus job posting) 3. Add `/opportunities/new` (Nexus job posting)
4. Enhance Nexus UI with messaging, contracts, payments 4. Enhance Nexus UI with messaging, contracts, payments
### **Phase 4: Documentation** ### **Phase 4: Documentation**
1. Update docs with new route structure 1. Update docs with new route structure
2. Update internal reference docs 2. Update internal reference docs