Prettier format pending files
This commit is contained in:
parent
21bb72a467
commit
159063a0aa
16 changed files with 176 additions and 62 deletions
|
|
@ -68,9 +68,9 @@ export async function getCourses(req: Request) {
|
|||
});
|
||||
} catch (error: any) {
|
||||
console.error("Error fetching courses:", error);
|
||||
return new Response(
|
||||
JSON.stringify({ error: "Failed to fetch courses" }),
|
||||
{ status: 500, headers: { "Content-Type": "application/json" } },
|
||||
);
|
||||
return new Response(JSON.stringify({ error: "Failed to fetch courses" }), {
|
||||
status: 500,
|
||||
headers: { "Content-Type": "application/json" },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -573,9 +573,18 @@ const App = () => (
|
|||
|
||||
{/* Ethos Guild Routes */}
|
||||
<Route path="/ethos/library" element={<TrackLibrary />} />
|
||||
<Route path="/ethos/artists/:userId" element={<ArtistProfile />} />
|
||||
<Route path="/ethos/settings" element={<ArtistSettings />} />
|
||||
<Route path="/ethos/licensing" element={<LicensingDashboard />} />
|
||||
<Route
|
||||
path="/ethos/artists/:userId"
|
||||
element={<ArtistProfile />}
|
||||
/>
|
||||
<Route
|
||||
path="/ethos/settings"
|
||||
element={<ArtistSettings />}
|
||||
/>
|
||||
<Route
|
||||
path="/ethos/licensing"
|
||||
element={<LicensingDashboard />}
|
||||
/>
|
||||
|
||||
<Route path="/support" element={<Support />} />
|
||||
<Route path="/status" element={<Status />} />
|
||||
|
|
|
|||
|
|
@ -174,9 +174,10 @@ export default function CreatorProfile() {
|
|||
<CardContent>
|
||||
<div className="flex flex-wrap gap-2">
|
||||
{creator.skills.map((skill) => {
|
||||
const endorsement = creator.aethex_skill_endorsements?.find(
|
||||
(e) => e.skill === skill
|
||||
);
|
||||
const endorsement =
|
||||
creator.aethex_skill_endorsements?.find(
|
||||
(e) => e.skill === skill,
|
||||
);
|
||||
return (
|
||||
<Badge
|
||||
key={skill}
|
||||
|
|
@ -214,7 +215,7 @@ export default function CreatorProfile() {
|
|||
<span className="text-sm font-medium text-amber-300">
|
||||
{creator.aethex_skill_endorsements.reduce(
|
||||
(sum, e) => sum + e.count,
|
||||
0
|
||||
0,
|
||||
)}{" "}
|
||||
total endorsements
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -169,7 +169,9 @@ export default function FoundationAchievements() {
|
|||
<Trophy className="h-8 w-8 text-red-400" />
|
||||
<div>
|
||||
<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>
|
||||
|
||||
|
|
@ -200,7 +202,9 @@ export default function FoundationAchievements() {
|
|||
</Card>
|
||||
<Card className="bg-slate-800/30 border-slate-700">
|
||||
<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">
|
||||
{totalPoints}
|
||||
</p>
|
||||
|
|
@ -211,7 +215,9 @@ export default function FoundationAchievements() {
|
|||
<p className="text-sm text-slate-400 mb-1">
|
||||
Rarest Badge
|
||||
</p>
|
||||
<p className="text-2xl font-bold text-red-400">Platinum</p>
|
||||
<p className="text-2xl font-bold text-red-400">
|
||||
Platinum
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
|
|
@ -262,7 +268,9 @@ export default function FoundationAchievements() {
|
|||
}`}
|
||||
>
|
||||
<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">
|
||||
{achievement.name}
|
||||
|
|
@ -274,7 +282,9 @@ export default function FoundationAchievements() {
|
|||
|
||||
<div className="flex items-center justify-center gap-2 mb-4">
|
||||
<Badge
|
||||
className={difficultyColors[achievement.difficulty]}
|
||||
className={
|
||||
difficultyColors[achievement.difficulty]
|
||||
}
|
||||
>
|
||||
{achievement.difficulty.toUpperCase()}
|
||||
</Badge>
|
||||
|
|
@ -315,8 +325,9 @@ export default function FoundationAchievements() {
|
|||
Start Earning Badges
|
||||
</h3>
|
||||
<p className="text-slate-400 mb-6 max-w-2xl mx-auto">
|
||||
Sign in to track your achievements, earn points, and unlock
|
||||
exclusive rewards as you progress through Foundation courses.
|
||||
Sign in to track your achievements, earn points, and
|
||||
unlock exclusive rewards as you progress through
|
||||
Foundation courses.
|
||||
</p>
|
||||
<Button
|
||||
onClick={() => navigate("/login")}
|
||||
|
|
|
|||
|
|
@ -222,9 +222,7 @@ export default function FoundationCurriculum() {
|
|||
key={diff.value}
|
||||
onClick={() => {
|
||||
setSelectedDifficulty(
|
||||
selectedDifficulty === diff.value
|
||||
? null
|
||||
: diff.value,
|
||||
selectedDifficulty === diff.value ? null : diff.value,
|
||||
);
|
||||
}}
|
||||
className={`px-4 py-2 rounded-lg transition ${
|
||||
|
|
@ -264,9 +262,7 @@ export default function FoundationCurriculum() {
|
|||
key={course.id}
|
||||
className="bg-slate-800/30 border-slate-700 hover:border-red-500/50 transition overflow-hidden cursor-pointer"
|
||||
onClick={() =>
|
||||
navigate(
|
||||
`/foundation/curriculum/${course.slug}`,
|
||||
)
|
||||
navigate(`/foundation/curriculum/${course.slug}`)
|
||||
}
|
||||
>
|
||||
{course.cover_image_url && (
|
||||
|
|
@ -289,7 +285,9 @@ export default function FoundationCurriculum() {
|
|||
</div>
|
||||
|
||||
<div className="flex gap-2 mb-4">
|
||||
<Badge className={difficultyColors[course.difficulty]}>
|
||||
<Badge
|
||||
className={difficultyColors[course.difficulty]}
|
||||
>
|
||||
{course.difficulty.charAt(0).toUpperCase() +
|
||||
course.difficulty.slice(1)}
|
||||
</Badge>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ export default function ClientContracts() {
|
|||
<p className="text-slate-400 mb-6">
|
||||
Contract management coming soon
|
||||
</p>
|
||||
<Button variant="outline" onClick={() => navigate("/hub/client")}>
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => navigate("/hub/client")}
|
||||
>
|
||||
Back to Portal
|
||||
</Button>
|
||||
</CardContent>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ export default function ClientDashboard() {
|
|||
<p className="text-slate-400 mb-6">
|
||||
Advanced dashboard analytics coming soon
|
||||
</p>
|
||||
<Button variant="outline" onClick={() => navigate("/hub/client")}>
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => navigate("/hub/client")}
|
||||
>
|
||||
Back to Portal
|
||||
</Button>
|
||||
</CardContent>
|
||||
|
|
|
|||
|
|
@ -338,7 +338,9 @@ export default function ClientHub() {
|
|||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
onClick={() => navigate(`/hub/client/projects/${project.id}`)}
|
||||
onClick={() =>
|
||||
navigate(`/hub/client/projects/${project.id}`)
|
||||
}
|
||||
>
|
||||
View Details →
|
||||
</Button>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ export default function ClientInvoices() {
|
|||
<p className="text-slate-400 mb-6">
|
||||
Invoice tracking coming soon
|
||||
</p>
|
||||
<Button variant="outline" onClick={() => navigate("/hub/client")}>
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => navigate("/hub/client")}
|
||||
>
|
||||
Back to Portal
|
||||
</Button>
|
||||
</CardContent>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,8 @@ const mockProjects: ClientProject[] = [
|
|||
{
|
||||
id: 2,
|
||||
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",
|
||||
progress: 45,
|
||||
startDate: "2025-01-15",
|
||||
|
|
@ -113,8 +114,7 @@ export default function ClientProjects() {
|
|||
const matchesSearch =
|
||||
project.name.toLowerCase().includes(search.toLowerCase()) ||
|
||||
project.description.toLowerCase().includes(search.toLowerCase());
|
||||
const matchesStatus =
|
||||
!selectedStatus || project.status === selectedStatus;
|
||||
const matchesStatus = !selectedStatus || project.status === selectedStatus;
|
||||
return matchesSearch && matchesStatus;
|
||||
});
|
||||
|
||||
|
|
@ -188,7 +188,7 @@ export default function ClientProjects() {
|
|||
key={status}
|
||||
onClick={() =>
|
||||
setSelectedStatus(
|
||||
selectedStatus === status ? null : status
|
||||
selectedStatus === status ? null : status,
|
||||
)
|
||||
}
|
||||
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">
|
||||
<TrendingUp className="h-4 w-4 text-slate-500" />
|
||||
<span>
|
||||
${project.spent.toLocaleString()} /
|
||||
${project.budget.toLocaleString()}
|
||||
${project.spent.toLocaleString()} / $
|
||||
{project.budget.toLocaleString()}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ export default function ClientReports() {
|
|||
<p className="text-slate-400 mb-6">
|
||||
Detailed project reports and analytics coming soon
|
||||
</p>
|
||||
<Button variant="outline" onClick={() => navigate("/hub/client")}>
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => navigate("/hub/client")}
|
||||
>
|
||||
Back to Portal
|
||||
</Button>
|
||||
</CardContent>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ export default function ClientSettings() {
|
|||
<p className="text-slate-400 mb-6">
|
||||
Account settings and preferences coming soon
|
||||
</p>
|
||||
<Button variant="outline" onClick={() => navigate("/hub/client")}>
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => navigate("/hub/client")}
|
||||
>
|
||||
Back to Portal
|
||||
</Button>
|
||||
</CardContent>
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ export default function OpportunityDetail() {
|
|||
limit: 3,
|
||||
});
|
||||
setRelatedOpportunities(
|
||||
relatedResult.data.filter((opp) => opp.id !== id)
|
||||
relatedResult.data.filter((opp) => opp.id !== id),
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("Failed to fetch opportunity:", error);
|
||||
|
|
|
|||
|
|
@ -139,9 +139,7 @@ export default function OpportunityPostForm() {
|
|||
toast({
|
||||
title: "Error",
|
||||
description:
|
||||
error instanceof Error
|
||||
? error.message
|
||||
: "Failed to post opportunity",
|
||||
error instanceof Error ? error.message : "Failed to post opportunity",
|
||||
variant: "destructive",
|
||||
});
|
||||
} finally {
|
||||
|
|
|
|||
|
|
@ -7,11 +7,13 @@
|
|||
## Session 1: The Strategic Vision (Your First Prompt)
|
||||
|
||||
### **User's Opening Question**
|
||||
|
||||
> "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).
|
||||
|
||||
### **Initial Status**
|
||||
|
||||
- ✅ **Ethos Guild** (music marketplace) - COMPLETE
|
||||
- ✅ **GameForge** (game dev platform) - COMPLETE
|
||||
- ❓ **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:**
|
||||
|
||||
**1. NEXUS** - Scalable commission-based marketplace
|
||||
|
||||
- **Why:** Creators list themselves, clients post opportunities, AeThex takes 20% commission per transaction
|
||||
- **Business Model:** High volume, low touch (automated)
|
||||
- **Target:** Thousands of creators × thousands of opportunities = recurring revenue
|
||||
- **Implementation:** Full marketplace system (profiles, opportunities, applications, messaging, contracts, payments)
|
||||
|
||||
**2. CORP** - High-touch enterprise consulting
|
||||
|
||||
- **Why:** Sell $250k+ contracts to enterprise clients
|
||||
- **Business Model:** High-value, high-touch (personalized service)
|
||||
- **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):**
|
||||
|
||||
**3. FOUNDATION** - Non-profit top-of-funnel
|
||||
|
||||
- **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
|
||||
- **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**
|
||||
|
||||
| Arm | Status | System Type | Priority | Reason |
|
||||
|-----|--------|------------|----------|--------|
|
||||
| **Nexus** | Landing page | **Full marketplace** | **P1 (Critical)** | Scalable 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 |
|
||||
| **Labs** | Landing page | **R&D system** | **Backlog** | Funded by future revenue |
|
||||
| Arm | Status | System Type | Priority | Reason |
|
||||
| -------------- | ------------ | --------------------------- | ------------------ | --------------------------------- |
|
||||
| **Nexus** | Landing page | **Full marketplace** | **P1 (Critical)** | Scalable 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 |
|
||||
| **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**
|
||||
|
||||
#### **Foundation System Migration**
|
||||
|
||||
**File:** `code/supabase/migrations/20250214_add_foundation_system.sql` (340 lines)
|
||||
|
||||
**Why Built:**
|
||||
|
||||
- Store courses, modules, lessons (curriculum)
|
||||
- Track user progress through courses (engagement)
|
||||
- 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)
|
||||
|
||||
**Tables Created:**
|
||||
|
||||
```
|
||||
├─ foundation_courses (store educational content)
|
||||
├─ 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**
|
||||
|
||||
**File:** `code/supabase/migrations/20250214_add_nexus_marketplace.sql` (407 lines)
|
||||
|
||||
**Why Built:**
|
||||
|
||||
- Store creator profiles (talent supply)
|
||||
- Store opportunity postings (talent demand)
|
||||
- Track applications (matching)
|
||||
|
|
@ -107,6 +117,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
|
|||
- Track commissions (20% split)
|
||||
|
||||
**Tables Created:**
|
||||
|
||||
```
|
||||
├─ nexus_creator_profiles (creator portfolio + rates)
|
||||
├─ 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**
|
||||
|
||||
#### **Foundation Admin Dashboard**
|
||||
|
||||
**File:** `code/client/components/admin/AdminFoundationManager.tsx` (589 lines)
|
||||
|
||||
**Why Built:**
|
||||
|
||||
- Approve/reject mentor applications (quality gate)
|
||||
- Publish/unpublish courses (content management)
|
||||
- View achievement stats (monitor engagement)
|
||||
|
||||
**Features:**
|
||||
|
||||
```
|
||||
├─ Mentor Approval Tab
|
||||
│ └─ 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**
|
||||
|
||||
**File:** `code/client/components/admin/AdminNexusManager.tsx` (623 lines)
|
||||
|
||||
**Why Built:**
|
||||
|
||||
- Moderate opportunity postings (prevent spam/abuse)
|
||||
- Resolve disputes between creators/clients (trust)
|
||||
- Track commission revenue (financial visibility)
|
||||
|
||||
**Features:**
|
||||
|
||||
```
|
||||
├─ Opportunity Moderation Tab
|
||||
│ ├─ List all opportunities
|
||||
|
|
@ -194,9 +211,11 @@ Nexus Admin APIs:
|
|||
## Session 5: Wiring Into Admin Panel
|
||||
|
||||
### **What Changed**
|
||||
|
||||
Added Foundation & Nexus tabs to `/admin` page
|
||||
|
||||
**Files Modified:**
|
||||
|
||||
- `code/client/pages/Admin.tsx`
|
||||
- Added imports for `AdminFoundationManager` and `AdminNexusManager`
|
||||
- Added two new `<TabsContent>` sections in admin tabs
|
||||
|
|
@ -208,18 +227,22 @@ Added Foundation & Nexus tabs to `/admin` page
|
|||
## Session 6: Domain & DNS Crisis
|
||||
|
||||
### **What Happened**
|
||||
|
||||
You accidentally reset DNS on Hostinger domain.
|
||||
|
||||
### **Why It Matters**
|
||||
|
||||
- All Discord OAuth redirects depend on correct domain (`https://aethex.dev/api/discord/oauth/callback`)
|
||||
- Activity manifest depends on domain (`https://aethex.dev`)
|
||||
- SSL certificates depend on correct DNS
|
||||
|
||||
### **What Was Fixed**
|
||||
|
||||
- Corrected DNS records to point to Vercel
|
||||
- Fixed SSL issue on root domain
|
||||
|
||||
### **Why This Blocks Everything**
|
||||
|
||||
- Users can't sign in with Discord
|
||||
- All OAuth linking fails
|
||||
- Activity integration fails
|
||||
|
|
@ -230,10 +253,13 @@ You accidentally reset DNS on Hostinger domain.
|
|||
## Session 7: The Lost Context - Full Ecosystem Audit
|
||||
|
||||
### **What Happened**
|
||||
|
||||
You said: "I'm losing myself in my own ecosystem" and asked for an audit.
|
||||
|
||||
### **Root Cause**
|
||||
|
||||
Over time, 100+ routes were created for various purposes:
|
||||
|
||||
- Some legacy (from before the strategic pivot to monetization)
|
||||
- Some duplicate (same functionality, different paths)
|
||||
- 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**
|
||||
|
||||
#### **Strategic Routes (Supporting Monetization)**
|
||||
|
||||
```
|
||||
/nexus → Landing page for Nexus
|
||||
/creators → Creator directory (NEXUS marketplace)
|
||||
|
|
@ -262,6 +289,7 @@ Over time, 100+ routes were created for various purposes:
|
|||
```
|
||||
|
||||
#### **Legacy Routes (Pre-Monetization Pivot)**
|
||||
|
||||
```
|
||||
/consulting → OLD, duplicate of /corp
|
||||
/game-development → OLD, duplicate of /gameforge
|
||||
|
|
@ -276,6 +304,7 @@ Over time, 100+ routes were created for various purposes:
|
|||
```
|
||||
|
||||
#### **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."
|
||||
|
||||
---
|
||||
|
|
@ -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
|
||||
|
||||
### **Your Statement**
|
||||
|
||||
> "Our `"Go-to-Market"` Roadmap is 100% focused on one thing: Monetization.
|
||||
> Our two `"cash registers"` are `NEXUS` (commissions) and `CORP` (contracts)."
|
||||
|
||||
### **What This Means for Routes/Systems**
|
||||
|
||||
| Route | Purpose | Keep/Remove |
|
||||
|-------|---------|-----------|
|
||||
| `/nexus/*` | Scalable commission marketplace | **KEEP & ENHANCE** |
|
||||
| `/creators/*` | Creator supply for Nexus | **KEEP & ENHANCE** |
|
||||
| `/opportunities/*` | Job demand for Nexus | **KEEP & ENHANCE** |
|
||||
| `/corp/*` | Enterprise landing page | **KEEP** |
|
||||
| `/hub/client` | Enterprise client portal | **ADD (new)** |
|
||||
| `/foundation/*` | Top-of-funnel creator acquisition | **KEEP & BUILD** |
|
||||
| `/labs` | R&D division | **LANDING PAGE ONLY** |
|
||||
| `/consulting` | OLD Corp landing | **REMOVE** |
|
||||
| `/community` | Overlaps with Foundation | **CONSOLIDATE** |
|
||||
| `/wix/*` | Legacy marketing | **REMOVE** |
|
||||
| Route | Purpose | Keep/Remove |
|
||||
| ------------------ | --------------------------------- | --------------------- |
|
||||
| `/nexus/*` | Scalable commission marketplace | **KEEP & ENHANCE** |
|
||||
| `/creators/*` | Creator supply for Nexus | **KEEP & ENHANCE** |
|
||||
| `/opportunities/*` | Job demand for Nexus | **KEEP & ENHANCE** |
|
||||
| `/corp/*` | Enterprise landing page | **KEEP** |
|
||||
| `/hub/client` | Enterprise client portal | **ADD (new)** |
|
||||
| `/foundation/*` | Top-of-funnel creator acquisition | **KEEP & BUILD** |
|
||||
| `/labs` | R&D division | **LANDING PAGE ONLY** |
|
||||
| `/consulting` | OLD Corp landing | **REMOVE** |
|
||||
| `/community` | Overlaps with Foundation | **CONSOLIDATE** |
|
||||
| `/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**
|
||||
|
||||
1. **NEXUS** (P1 - Scalable Cash Register)
|
||||
|
||||
- **Database:** ✅ Complete (407-line migration)
|
||||
- **Admin:** ✅ Complete (moderation, disputes, commissions)
|
||||
- **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
|
||||
|
||||
2. **CORP** (P2 - Enterprise Cash Register)
|
||||
|
||||
- **Landing Page:** ✅ Complete
|
||||
- **Client Portal:** ❌ NOT BUILT (needs `/hub/client`)
|
||||
- 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**
|
||||
|
||||
The ecosystem grew organically:
|
||||
|
||||
- **Early days:** Build all possible features (everything marketplace)
|
||||
- **As it grew:** Added more routes, more arms, more features
|
||||
- **No consolidation:** Old routes stayed even when new ones were created
|
||||
|
|
@ -346,18 +379,21 @@ The ecosystem grew organically:
|
|||
### **To Achieve Monetization Goals:**
|
||||
|
||||
1. **Enhance Nexus UI** (P1)
|
||||
|
||||
- The DATABASE is ready
|
||||
- The ADMIN TOOLS are ready
|
||||
- But the PUBLIC STOREFRONT needs work
|
||||
- Users can't see the beautiful marketplace we built
|
||||
|
||||
2. **Build Corp Client Portal** (P2)
|
||||
|
||||
- The LANDING PAGE hooks customers
|
||||
- But there's nowhere for PAYING CLIENTS to go
|
||||
- They can't see projects, invoices, or dashboards
|
||||
- You're leaving money on the table
|
||||
|
||||
3. **Build Foundation Public UI** (P3)
|
||||
|
||||
- The DATABASE is ready
|
||||
- The ADMIN TOOLS are ready
|
||||
- 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**
|
||||
|
||||
Focus on making the THREE CASH REGISTERS visible to users:
|
||||
|
||||
- Nexus storefront (creators browse, post, apply, earn 80% commission)
|
||||
- Corp portal (clients see projects, invoices, dashboards)
|
||||
- Foundation curriculum (future creators learn for free)
|
||||
|
|
|
|||
|
|
@ -20,11 +20,13 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## Current Ecosystem Structure (By Business Division)
|
||||
|
||||
### **🟡 LABS** (Yellow) - Research & Development
|
||||
|
||||
**Landing Page:** `/labs`
|
||||
**Sub-pages:** `/labs/explore-research`, `/labs/join-team`, `/labs/get-involved`
|
||||
**Status:** ✅ Landing pages complete | ❌ Full system NOT built
|
||||
|
||||
**Legacy/Duplicate:**
|
||||
|
||||
- `/research` → ResearchLabs (OLD legacy page, same as `/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
|
||||
|
||||
**Landing Page:** `/gameforge`
|
||||
**Sub-pages:** `/gameforge/start-building`, `/gameforge/view-portfolio`, `/gameforge/join-gameforge`
|
||||
**System Pages:**
|
||||
|
||||
- `/projects` - Project management
|
||||
- `/projects/new` - Create project
|
||||
- `/projects/:projectId/board` - Kanban board
|
||||
|
|
@ -43,6 +47,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
**Status:** ✅ Full system COMPLETE
|
||||
|
||||
**Legacy/Duplicate:**
|
||||
|
||||
- `/game-development` (OLD, same as `/gameforge`)
|
||||
|
||||
**Decision:** REMOVE `/game-development` route
|
||||
|
|
@ -50,10 +55,12 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
---
|
||||
|
||||
### **🔴 FOUNDATION** (Red) - Education & Community
|
||||
|
||||
**Landing Page:** `/foundation`
|
||||
**Sub-pages:** `/foundation/contribute`, `/foundation/learn-more`, `/foundation/get-involved`
|
||||
|
||||
**Community Section (overlapping):**
|
||||
|
||||
- `/community` - Main community/social feed
|
||||
- `/community/teams` - FoundationTeams
|
||||
- `/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!
|
||||
|
||||
**Decision:**
|
||||
**Decision:**
|
||||
|
||||
- `/community` should BECOME `/foundation`
|
||||
- `/community/mentorship` → `/foundation/mentorship`
|
||||
- `/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
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/community/groups/ethos` - Guild landing
|
||||
- `/ethos/library` - Track library
|
||||
- `/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)
|
||||
|
||||
**Decision:** CLEAN UP - Move Ethos Guild pages to organized `/ethos/*` path
|
||||
|
||||
- `/community/groups/ethos` → `/ethos` (landing)
|
||||
- Rest are fine
|
||||
|
||||
---
|
||||
|
||||
### **🔵 CORP** (Blue) - Enterprise Consulting
|
||||
|
||||
**Landing Page:** `/corp`
|
||||
**Sub-pages:** `/corp/schedule-consultation`, `/corp/view-case-studies`, `/corp/contact-us`
|
||||
|
||||
**Legacy/Duplicate:**
|
||||
|
||||
- `/consulting` (OLD DevelopmentConsulting page)
|
||||
- `/services` - Services page (overlapping with Corp)
|
||||
- `/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
|
||||
|
||||
**Decision:**
|
||||
|
||||
- REMOVE `/consulting`, `/services` (consolidate to `/corp`)
|
||||
- REMOVE `/wix` and `/wix/*` routes (legacy)
|
||||
- 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
|
||||
|
||||
**Landing Page:** `/nexus`
|
||||
|
||||
**Creator Network Routes (ALREADY EXIST):**
|
||||
|
||||
- `/creators` - CreatorDirectory
|
||||
- `/creators/:username` - CreatorProfile
|
||||
- `/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)
|
||||
|
||||
**Decision:**
|
||||
**Decision:**
|
||||
|
||||
- These routes are ALREADY WIRED correctly
|
||||
- Need to ENHANCE with Nexus features (messaging, contracts, payments, 20% commission)
|
||||
- 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
|
||||
|
||||
**Landing Page:** `/staff`
|
||||
**Auth:** `/staff/login`
|
||||
**Dashboard:**
|
||||
|
||||
- `/staff/dashboard` - Operations dashboard
|
||||
- `/staff/directory` - Team directory
|
||||
- `/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
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/dev-link` - Landing page
|
||||
- `/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
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/docs` (nested) - Main docs hub with sub-routes
|
||||
- `/docs/getting-started`
|
||||
- `/docs/platform`
|
||||
|
|
@ -181,6 +203,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
- `/docs/integrations`
|
||||
|
||||
**Legacy/Duplicate:**
|
||||
|
||||
- `/tutorials` (separate Tutorials page, overlaps with `/docs/tutorials`)
|
||||
|
||||
**Status:** ✅ Docs complete with nested routing
|
||||
|
|
@ -192,6 +215,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## User Profiles & Passport
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/profile` - User profile/settings
|
||||
- `/profile/me` - User profile (same as `/profile`)
|
||||
- `/profile/applications` - Job applications
|
||||
|
|
@ -200,6 +224,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
- `/passport/:username` - Other user passport
|
||||
|
||||
**Legacy/Duplicate:**
|
||||
|
||||
- `/developers` - DevelopersDirectory (overlaps with `/creators`)
|
||||
- `/developers/:id` (redirects to LegacyPassportRedirect)
|
||||
- `/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
|
||||
|
||||
**Decision:**
|
||||
**Decision:**
|
||||
|
||||
- REMOVE legacy `/developers` and `/profiles` routes
|
||||
- KEEP `/passport/*` for public profiles
|
||||
- KEEP `/profile` for personal settings
|
||||
|
|
@ -218,6 +244,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## Community & Social
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/community` - Main social feed
|
||||
- `/community/:tabId` - Dynamic tabs (legacy pattern)
|
||||
- `/feed` - Alternative feed
|
||||
|
|
@ -229,6 +256,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
**Status:** ⏳ Partially built
|
||||
|
||||
**Decision:**
|
||||
|
||||
- CONSOLIDATE `/teams` → `/squads` (keep only `/squads`)
|
||||
- KEEP `/mentee-hub` (will become `/foundation/mentorship` per FOUNDATION consolidation)
|
||||
- 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
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/login` - Login page (has Discord OAuth button)
|
||||
- `/profile/link-discord` - Discord linking
|
||||
- `/discord-verify` - Discord verification code
|
||||
- `/activity` - Discord Activity SPA
|
||||
|
||||
**API Endpoints (NOT routes, but important):**
|
||||
|
||||
- `/api/discord/oauth/start`
|
||||
- `/api/discord/oauth/callback`
|
||||
- `/api/discord/activity-auth`
|
||||
|
|
@ -259,6 +289,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## Admin & Internal
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/admin` - Main admin dashboard
|
||||
- `/admin/docs-sync` - Gitbook sync tool
|
||||
- `/staff/*` - Staff portal (see STAFF section above)
|
||||
|
|
@ -272,6 +303,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## Informational & Legal
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/about` - About page
|
||||
- `/contact` - Contact page
|
||||
- `/get-started` - Getting started
|
||||
|
|
@ -288,6 +320,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
- `/terms` - Terms of service
|
||||
|
||||
**Legacy/Duplicate:**
|
||||
|
||||
- `/wix/*` pages (legacy, overlaps with Corp info)
|
||||
|
||||
**Status:** ✅ Complete
|
||||
|
|
@ -299,6 +332,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## Internal Docs (Notion-based)
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/internal-docs/*` - 18 pages for internal governance, ops, finance, etc.
|
||||
|
||||
**Status:** ✅ Complete
|
||||
|
|
@ -310,6 +344,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## Onboarding & Auth
|
||||
|
||||
**Routes:**
|
||||
|
||||
- `/onboarding` - Signup flow
|
||||
- `/login` - Login
|
||||
- `/signup` - Signup redirect
|
||||
|
|
@ -326,6 +361,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
|
|||
## CONSOLIDATION SUMMARY
|
||||
|
||||
### 🗑️ **Routes to REMOVE** (15 routes):
|
||||
|
||||
1. `/research` → Merge into `/labs`
|
||||
2. `/game-development` → Merge into `/gameforge`
|
||||
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`
|
||||
|
||||
### 🔄 **Routes to RENAME/REORGANIZE** (8 changes):
|
||||
|
||||
1. `/community` → `/foundation`
|
||||
2. `/community/teams` → `/foundation/teams`
|
||||
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)
|
||||
|
||||
### ✅ **Routes to ADD** (3 new):
|
||||
|
||||
1. `/hub/client` - Corp client portal (new system)
|
||||
2. `/foundation/curriculum` - Public courses (Foundation system)
|
||||
3. `/opportunities/new` - Post opportunity form (Nexus system)
|
||||
|
||||
### 🟢 **Routes to KEEP** (100+ routes):
|
||||
|
||||
All properly structured routes remain as-is
|
||||
|
||||
---
|
||||
|
|
@ -406,22 +445,26 @@ All properly structured routes remain as-is
|
|||
## Implementation Priority
|
||||
|
||||
### **Phase 1: Quick Wins (1-2 hours)**
|
||||
|
||||
1. Remove legacy routes (Wix, consulting, game-development, research)
|
||||
2. Add 301 redirects where needed
|
||||
3. Update navigation links
|
||||
|
||||
### **Phase 2: Consolidation (4-6 hours)**
|
||||
|
||||
1. Rename `/community` → `/foundation`
|
||||
2. Update all internal links
|
||||
3. Verify all child routes work
|
||||
|
||||
### **Phase 3: New Systems (P1 Priority)**
|
||||
|
||||
1. Add `/hub/client` (Corp portal)
|
||||
2. Add `/foundation/curriculum` (Foundation courses)
|
||||
3. Add `/opportunities/new` (Nexus job posting)
|
||||
4. Enhance Nexus UI with messaging, contracts, payments
|
||||
|
||||
### **Phase 4: Documentation**
|
||||
|
||||
1. Update docs with new route structure
|
||||
2. Update internal reference docs
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue