diff --git a/aethex-dev-docs.zip b/aethex-dev-docs.zip
new file mode 100644
index 00000000..fa7cebf5
Binary files /dev/null and b/aethex-dev-docs.zip differ
diff --git a/client/App.tsx b/client/App.tsx
index 1547582c..2801331a 100644
--- a/client/App.tsx
+++ b/client/App.tsx
@@ -56,6 +56,11 @@ import GameJoltIntegration from "./pages/docs/integrations/GameJolt";
import ItchIoIntegration from "./pages/docs/integrations/ItchIo";
import DocsCurriculum from "./pages/docs/DocsCurriculum";
import DocsCurriculumEthos from "./pages/docs/DocsCurriculumEthos";
+import DocsLangOverview from "./pages/docs/lang/DocsLangOverview";
+import DocsLangQuickstart from "./pages/docs/lang/DocsLangQuickstart";
+import DocsLangSyntax from "./pages/docs/lang/DocsLangSyntax";
+import DocsLangCli from "./pages/docs/lang/DocsLangCli";
+import DocsLangExamples from "./pages/docs/lang/DocsLangExamples";
import EthosGuild from "./pages/community/EthosGuild";
import TrackLibrary from "./pages/ethos/TrackLibrary";
import ArtistProfile from "./pages/ethos/ArtistProfile";
@@ -179,6 +184,7 @@ import MarketplaceItemDetail from "./pages/dev-platform/MarketplaceItemDetail";
import CodeExamples from "./pages/dev-platform/CodeExamples";
import ExampleDetail from "./pages/dev-platform/ExampleDetail";
import DeveloperPlatform from "./pages/dev-platform/DeveloperPlatform";
+import AethexLang from "./pages/dev-platform/AethexLang";
const queryClient = new QueryClient();
@@ -663,6 +669,12 @@ const App = () => (
path="integrations/itchio"
element={ }
/>
+ {/* AeThex Language Docs */}
+ } />
+ } />
+ } />
+ } />
+ } />
} />
} />
@@ -891,6 +903,7 @@ const App = () => (
} />
} />
} />
+ } />
{/* Explicit 404 route for static hosting fallbacks */}
} />
diff --git a/client/components/docs/DocsLayout.tsx b/client/components/docs/DocsLayout.tsx
index 4ec7457b..3600ee0f 100644
--- a/client/components/docs/DocsLayout.tsx
+++ b/client/components/docs/DocsLayout.tsx
@@ -81,6 +81,12 @@ const docNavigation: DocNavItem[] = [
icon: ,
description: "Learning paths",
},
+ {
+ title: "AeThex Language",
+ path: "/docs/lang",
+ icon: ,
+ description: "AeThex programming language",
+ },
];
interface DocsLayoutProps {
diff --git a/client/pages/dev-platform/AethexLang.tsx b/client/pages/dev-platform/AethexLang.tsx
new file mode 100644
index 00000000..367a414e
--- /dev/null
+++ b/client/pages/dev-platform/AethexLang.tsx
@@ -0,0 +1,436 @@
+import Layout from "@/components/Layout";
+import SEO from "@/components/SEO";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import { Link } from "react-router-dom";
+import {
+ Package,
+ Shield,
+ Users,
+ Zap,
+ Copy,
+ CheckCircle2,
+ ArrowRight,
+ ExternalLink,
+ Github,
+ Terminal,
+ Code,
+ Lock,
+ Globe,
+ FileText,
+} from "lucide-react";
+import { useState } from "react";
+
+const PACKAGE_VERSION = "1.0.0";
+
+const features = [
+ {
+ icon: Users,
+ title: "Passport",
+ description: "Universal identity across platforms - authenticate users seamlessly on Roblox, web, and more",
+ color: "text-blue-500",
+ bgColor: "bg-blue-500/10",
+ },
+ {
+ icon: Zap,
+ title: "DataSync",
+ description: "Cross-platform data synchronization for real-time state management",
+ color: "text-yellow-500",
+ bgColor: "bg-yellow-500/10",
+ },
+ {
+ icon: Shield,
+ title: "SafeInput",
+ description: "PII detection and scrubbing - critical for CODEX and child safety compliance",
+ color: "text-green-500",
+ bgColor: "bg-green-500/10",
+ },
+ {
+ icon: Lock,
+ title: "Compliance",
+ description: "Built-in COPPA/FERPA compliance checks with audit trail logging",
+ color: "text-purple-500",
+ bgColor: "bg-purple-500/10",
+ },
+];
+
+const platforms = [
+ { name: "Roblox", supported: true },
+ { name: "UEFN", supported: true },
+ { name: "Unity", supported: true },
+ { name: "Web", supported: true },
+ { name: "Node.js", supported: true },
+];
+
+const codeExamples = {
+ passport: `const { Passport } = require('@aethex.os/core');
+
+const passport = new Passport('user123', 'PlayerOne');
+await passport.verify();
+await passport.syncAcross(['roblox', 'web']);`,
+ safeinput: `const { SafeInput } = require('@aethex.os/core');
+
+// Detect PII
+const detected = SafeInput.detectPII('Call me at 555-1234');
+// Returns: ['phone']
+
+// Scrub PII
+const clean = SafeInput.scrub('My email is user@example.com');
+// Returns: 'My email is [EMAIL_REDACTED]'
+
+// Validate input
+const result = SafeInput.validate('PlayerName123');
+if (result.valid) {
+ console.log('Safe to use');
+}`,
+ compliance: `const { Compliance } = require('@aethex.os/core');
+
+// Age gate
+if (Compliance.isCOPPACompliant(userAge)) {
+ // User is 13+
+}
+
+// Check data collection permission
+if (Compliance.canCollectData(user)) {
+ // Safe to collect
+}
+
+// Log compliance check for audit
+Compliance.logCheck(userId, 'leaderboard_submission', true);`,
+ datasync: `const { DataSync } = require('@aethex.os/core');
+
+// Sync data across platforms
+await DataSync.sync({
+ inventory: playerInventory,
+ progress: gameProgress
+}, ['roblox', 'web']);
+
+// Pull data from specific platform
+const data = await DataSync.pull(userId, 'roblox');`,
+};
+
+function CopyButton({ text }: { text: string }) {
+ const [copied, setCopied] = useState(false);
+
+ const handleCopy = async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ };
+
+ return (
+
+ {copied ? (
+
+ ) : (
+
+ )}
+
+ );
+}
+
+function CodeBlock({ code, language = "javascript" }: { code: string; language?: string }) {
+ return (
+
+ );
+}
+
+export default function AethexLang() {
+ return (
+
+
+
+ {/* Hero Section */}
+
+
+
+ v{PACKAGE_VERSION}
+
+
+ MIT License
+
+
+
+ @aethex.os/core
+
+
+ AeThex Language Standard Library — Cross-platform utilities for authentication,
+ data sync, and compliance across the metaverse.
+
+
+ {/* Install Command */}
+
+
+
+
+ npm install @aethex.os/core
+
+
+
+
+
+
+
+
+ {/* Platform Support */}
+
+ Works everywhere you build
+
+ {platforms.map((platform) => (
+
+
+ {platform.name}
+
+ ))}
+
+
+
+ {/* Features Grid */}
+
+ Core Modules
+
+ Everything you need to build safe, compliant, cross-platform experiences
+
+
+ {features.map((feature) => (
+
+
+
+
+ {feature.title}
+ {feature.description}
+
+ ))}
+
+
+
+ {/* Code Examples */}
+
+ Quick Examples
+
+ Get started in minutes with these production-ready code snippets
+
+
+
+
+ Passport
+ SafeInput
+ Compliance
+ DataSync
+
+
+
+
+
+
+ Passport - Universal Identity
+
+
+ Authenticate users once, verify them everywhere
+
+
+
+
+
+
+
+
+
+
+
+
+ SafeInput - PII Detection
+
+
+ Detect and scrub personally identifiable information automatically
+
+
+
+
+
+
+
+
+
+
+
+
+ Compliance - COPPA/FERPA
+
+
+ Built-in compliance checks with audit trail logging
+
+
+
+
+
+
+
+
+
+
+
+
+ DataSync - Cross-Platform State
+
+
+ Synchronize data across all supported platforms
+
+
+
+
+
+
+
+
+
+
+ {/* API Reference */}
+
+
+
+
+
+
API Reference
+
+
+
Passport
+
+ new Passport(userId, username) - Create passport
+ verify() - Verify identity
+ syncAcross(platforms) - Sync across platforms
+ toJSON() - Export as JSON
+
+
+
+
SafeInput
+
+ SafeInput.detectPII(input) - Detect PII types
+ SafeInput.scrub(input) - Scrub PII from string
+ SafeInput.validate(input) - Validate input safety
+
+
+
+
+
+
+
+
DataSync
+
+ DataSync.sync(data, platforms) - Sync data
+ DataSync.pull(userId, platform) - Pull data
+
+
+
+
Compliance
+
+ Compliance.isCOPPACompliant(age) - Check if 13+
+ Compliance.requiresParentConsent(age) - Check if <13
+ Compliance.canCollectData(user) - Check permission
+ Compliance.logCheck(userId, type, result) - Audit log
+
+
+
+
+
+
+
+
+
+ {/* Keywords/Use Cases */}
+
+ Built for
+
+ {["metaverse", "cross-platform", "roblox", "uefn", "unity", "coppa", "compliance", "pii-detection"].map((keyword) => (
+
+ {keyword}
+
+ ))}
+
+
+
+ {/* CTA */}
+
+ Ready to Build?
+
+ Start building safer, compliant cross-platform experiences today.
+
+
+
+
+ Quick Start Guide
+
+
+
+
+
+
+ Full Documentation
+
+
+
+
+
+ {/* Footer Info */}
+
+
+
+ );
+}
diff --git a/client/pages/docs/lang/DocsLangCli.tsx b/client/pages/docs/lang/DocsLangCli.tsx
new file mode 100644
index 00000000..59c88321
--- /dev/null
+++ b/client/pages/docs/lang/DocsLangCli.tsx
@@ -0,0 +1,379 @@
+import { Link } from "react-router-dom";
+import { Badge } from "@/components/ui/badge";
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import {
+ Terminal,
+ CheckCircle2,
+ Copy,
+ ExternalLink,
+ Package,
+} from "lucide-react";
+import { useState } from "react";
+
+function CopyButton({ text }: { text: string }) {
+ const [copied, setCopied] = useState(false);
+ const handleCopy = async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ };
+ return (
+
+ {copied ? : }
+
+ );
+}
+
+function CodeBlock({ code, language = "bash" }: { code: string; language?: string }) {
+ return (
+
+ );
+}
+
+const installCode = `npm install -g @aethex.os/cli`;
+
+const compileBasicCode = `aethex compile myfile.aethex`;
+
+const compileTargetCode = `# JavaScript (default)
+aethex compile myfile.aethex --target javascript
+
+# Roblox/Lua
+aethex compile myfile.aethex --target roblox
+
+# UEFN/Verse (coming soon)
+aethex compile myfile.aethex --target uefn
+
+# Unity/C# (coming soon)
+aethex compile myfile.aethex --target unity`;
+
+const outputCode = `aethex compile myfile.aethex -o output.js
+aethex compile myfile.aethex -t roblox -o game.lua`;
+
+const watchCode = `aethex compile myfile.aethex --watch`;
+
+const newProjectCode = `# Basic project
+aethex new my-project
+
+# With template
+aethex new my-game --template passport`;
+
+const initCode = `aethex init`;
+
+const helloAethexCode = `reality HelloWorld {
+ platforms: all
+}
+
+journey Greet(name) {
+ platform: all
+ notify "Hello, " + name + "!"
+}`;
+
+const commands = [
+ {
+ name: "compile",
+ syntax: "aethex compile ",
+ description: "Compile an AeThex file to the target platform",
+ options: [
+ { flag: "-t, --target ", description: "Target platform (javascript, roblox, uefn, unity)" },
+ { flag: "-o, --output ", description: "Output file path" },
+ { flag: "-w, --watch", description: "Watch for changes and recompile" },
+ ],
+ },
+ {
+ name: "new",
+ syntax: "aethex new ",
+ description: "Create a new AeThex project",
+ options: [
+ { flag: "--template ", description: "Project template (basic, passport, game)" },
+ ],
+ },
+ {
+ name: "init",
+ syntax: "aethex init",
+ description: "Initialize AeThex in the current directory",
+ options: [],
+ },
+ {
+ name: "--help",
+ syntax: "aethex --help",
+ description: "Show help information",
+ options: [],
+ },
+ {
+ name: "--version",
+ syntax: "aethex --version",
+ description: "Show CLI version",
+ options: [],
+ },
+];
+
+const targets = [
+ { name: "javascript", language: "JavaScript", platform: "Web, Node.js", status: "ready" },
+ { name: "roblox", language: "Lua", platform: "Roblox", status: "ready" },
+ { name: "uefn", language: "Verse", platform: "Fortnite", status: "coming" },
+ { name: "unity", language: "C#", platform: "Unity, VRChat", status: "coming" },
+];
+
+export default function DocsLangCli() {
+ return (
+
+ {/* Header */}
+
+
+ @aethex.os/cli
+
+ CLI Reference
+
+ AeThex Language Command Line Interface - Compile .aethex files
+ to JavaScript, Lua, Verse, and C#.
+
+
+
+ {/* Installation */}
+
+
+ {/* Usage */}
+
+ Usage
+
+
+
+
+
+
+ Compile a file
+
+
+
+
+
+
+
+
+
+ Compile to specific target
+
+
+
+
+
+
+
+
+ Save to file
+
+
+
+
+
+
+
+
+ Watch mode
+ Auto-recompile on file changes
+
+
+
+
+
+
+
+
+ Create new project
+
+
+
+
+
+
+
+
+ Initialize in existing directory
+
+
+
+
+
+
+
+
+ {/* Example */}
+
+ Example
+
+ Create hello.aethex:
+
+
+ Compile and run:
+
+
+
+ {/* Commands Reference */}
+
+ Commands
+
+ {commands.map((cmd) => (
+
+
+ {cmd.syntax}
+ {cmd.description}
+
+ {cmd.options.length > 0 && (
+
+
+ {cmd.options.map((opt) => (
+
+ {opt.flag}
+ {opt.description}
+
+ ))}
+
+
+ )}
+
+ ))}
+
+
+
+ {/* Options */}
+
+ Global Options
+
+
+
+
+ Option
+ Description
+
+
+
+
+ -t, --target <platform>
+ Target platform (javascript, roblox, uefn, unity)
+
+
+ -o, --output <file>
+ Output file path
+
+
+ -w, --watch
+ Watch for changes
+
+
+ --template <type>
+ Project template (basic, passport, game)
+
+
+
+
+
+
+ {/* Targets */}
+
+ Targets
+
+
+
+
+ Target
+ Language
+ Platform
+ Status
+
+
+
+ {targets.map((target) => (
+
+
+ {target.name}
+
+ {target.language}
+ {target.platform}
+
+ {target.status === "ready" ? (
+
+ Ready
+
+ ) : (
+ Coming Soon
+ )}
+
+
+ ))}
+
+
+
+
+
+ {/* Learn More */}
+
+
+ {/* Navigation */}
+
+
+ ← Language Syntax
+
+
+ Examples →
+
+
+
+ );
+}
diff --git a/client/pages/docs/lang/DocsLangExamples.tsx b/client/pages/docs/lang/DocsLangExamples.tsx
new file mode 100644
index 00000000..80c7f01d
--- /dev/null
+++ b/client/pages/docs/lang/DocsLangExamples.tsx
@@ -0,0 +1,414 @@
+import { Link } from "react-router-dom";
+import { Badge } from "@/components/ui/badge";
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import {
+ CheckCircle2,
+ Copy,
+ Shield,
+ Users,
+ Award,
+ Zap,
+ Lock,
+} from "lucide-react";
+import { useState } from "react";
+
+function CopyButton({ text }: { text: string }) {
+ const [copied, setCopied] = useState(false);
+ const handleCopy = async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ };
+ return (
+
+ {copied ? : }
+
+ );
+}
+
+function CodeBlock({ code }: { code: string }) {
+ return (
+
+ );
+}
+
+const helloWorldCode = `# AeThex Hello World Example
+
+reality HelloWorld {
+ platforms: all
+}
+
+journey Greet(name) {
+ platform: all
+ notify "Hello, " + name + " from AeThex!"
+}`;
+
+const crossPlatformAuthCode = `import { Passport, DataSync } from "@aethex.os/core"
+
+reality UniversalAuth {
+ platforms: [roblox, uefn, web]
+}
+
+journey Login(username, password) {
+ platform: all
+
+ let passport = new Passport(username)
+
+ when passport.verify() {
+ sync passport across [roblox, uefn, web]
+
+ # Pull existing data from any platform
+ let playerData = DataSync.pull(passport.userId, "roblox")
+
+ notify "Logged in across all platforms!"
+ reveal passport
+ }
+}`;
+
+const secureLeaderboardCode = `# The Foundry Certification Exam
+# Task: Build a COPPA-compliant, PII-safe leaderboard
+#
+# Requirements:
+# 1. Must accept player scores
+# 2. Must detect and block PII (phone numbers, emails, etc.)
+# 3. Must work on Roblox (Lua)
+# 4. Must display safely without exposing sensitive data
+
+import { SafeInput, Compliance } from "@aethex.os/core"
+
+reality SecureLeaderboard {
+ platforms: [roblox]
+ type: "compliance-exam"
+}
+
+# CRITICAL: This is the exam
+# If PII gets through to the leaderboard, you FAIL
+
+journey SubmitScore(player, playerName, score) {
+ platform: roblox
+
+ # STEP 1: Validate player age (COPPA compliance)
+ when !Compliance.isCOPPACompliant(player.age) {
+ notify "Players under 13 cannot submit scores publicly"
+ return
+ }
+
+ # STEP 2: Validate player name for PII
+ let nameValidation = SafeInput.validate(playerName)
+
+ when !nameValidation.valid {
+ notify "Invalid name: " + nameValidation.message
+ notify "Blocked PII types: " + nameValidation.blocked
+
+ # Log security incident
+ Compliance.logCheck(player.userId, "leaderboard_name_check", false)
+
+ return
+ }
+
+ # STEP 3: Validate score value for PII
+ let scoreValidation = SafeInput.validate(score.toString())
+
+ when !scoreValidation.valid {
+ notify "Invalid score: contains sensitive data"
+
+ # Log security incident
+ Compliance.logCheck(player.userId, "leaderboard_score_check", false)
+
+ return
+ }
+
+ # STEP 4: All validations passed - safe to submit
+ Compliance.logCheck(player.userId, "leaderboard_submission", true)
+ notify "Score submitted successfully!"
+
+ reveal {
+ player: nameValidation.clean,
+ score: scoreValidation.clean
+ }
+}
+
+# Test function: Attempts to inject PII
+journey TestPIIDetection() {
+ platform: roblox
+
+ notify "=== FOUNDRY EXAM TEST SUITE ==="
+
+ # Test 1: Phone number in name
+ let test1 = SafeInput.validate("John 555-1234")
+ when test1.valid {
+ notify "❌ FAIL: Phone number not detected"
+ } otherwise {
+ notify "✅ PASS: Phone number blocked"
+ }
+
+ # Test 2: Email in name
+ let test2 = SafeInput.validate("player@email.com")
+ when test2.valid {
+ notify "❌ FAIL: Email not detected"
+ } otherwise {
+ notify "✅ PASS: Email blocked"
+ }
+
+ # Test 3: Clean name
+ let test3 = SafeInput.validate("PlayerOne")
+ when test3.valid {
+ notify "✅ PASS: Clean name accepted"
+ } otherwise {
+ notify "❌ FAIL: Clean name rejected"
+ }
+
+ # Test 4: SSN in score
+ let test4 = SafeInput.validate("123-45-6789")
+ when test4.valid {
+ notify "❌ FAIL: SSN not detected"
+ } otherwise {
+ notify "✅ PASS: SSN blocked"
+ }
+}`;
+
+const coppaRegistrationCode = `import { Compliance, Passport } from "@aethex.os/core"
+
+journey RegisterUser(username, age) {
+ platform: all
+
+ when Compliance.isCOPPACompliant(age) {
+ # User is 13+, can proceed
+ let passport = new Passport(username)
+ passport.verify()
+ notify "Account created!"
+ } otherwise {
+ # Under 13, require parent consent
+ notify "Parent permission required"
+ # Send email to parent (implementation omitted)
+ }
+}`;
+
+const dataSyncCode = `import { Passport, DataSync } from "@aethex.os/core"
+
+reality CrossPlatformProgress {
+ platforms: [roblox, uefn, web]
+}
+
+journey SaveProgress(player, progress) {
+ platform: all
+
+ # Sync progress data across all platforms
+ DataSync.sync({
+ level: progress.level,
+ experience: progress.xp,
+ inventory: progress.items
+ }, [roblox, uefn, web])
+
+ notify "Progress saved!"
+}
+
+journey LoadProgress(player) {
+ platform: all
+
+ # Pull latest progress from any platform
+ let data = DataSync.pull(player.userId, "web")
+
+ reveal data
+}`;
+
+const examples = [
+ {
+ id: "hello-world",
+ title: "Hello World",
+ description: "Your first AeThex program",
+ icon: Zap,
+ color: "text-yellow-500",
+ code: helloWorldCode,
+ difficulty: "Beginner",
+ },
+ {
+ id: "cross-platform-auth",
+ title: "Cross-Platform Authentication",
+ description: "Login once, authenticated everywhere",
+ icon: Users,
+ color: "text-blue-500",
+ code: crossPlatformAuthCode,
+ difficulty: "Intermediate",
+ },
+ {
+ id: "secure-leaderboard",
+ title: "Secure Leaderboard (Foundry Exam)",
+ description: "COPPA-compliant, PII-safe leaderboard - the certification exam",
+ icon: Award,
+ color: "text-purple-500",
+ code: secureLeaderboardCode,
+ difficulty: "Advanced",
+ },
+ {
+ id: "coppa-registration",
+ title: "COPPA-Compliant Registration",
+ description: "User registration with age verification",
+ icon: Lock,
+ color: "text-green-500",
+ code: coppaRegistrationCode,
+ difficulty: "Intermediate",
+ },
+ {
+ id: "data-sync",
+ title: "Cross-Platform Data Sync",
+ description: "Sync player progress across all platforms",
+ icon: Shield,
+ color: "text-cyan-500",
+ code: dataSyncCode,
+ difficulty: "Intermediate",
+ },
+];
+
+const difficultyColors: Record = {
+ Beginner: "bg-green-500/20 text-green-400 border-green-500/30",
+ Intermediate: "bg-yellow-500/20 text-yellow-400 border-yellow-500/30",
+ Advanced: "bg-red-500/20 text-red-400 border-red-500/30",
+};
+
+export default function DocsLangExamples() {
+ const [activeExample, setActiveExample] = useState("hello-world");
+ const currentExample = examples.find((e) => e.id === activeExample) || examples[0];
+
+ return (
+
+ {/* Header */}
+
+
+ Code Examples
+
+ Examples
+
+ Real-world code examples and patterns for AeThex development.
+
+
+
+ {/* Examples Grid for Quick Navigation */}
+
+ Browse Examples
+
+ {examples.map((example) => (
+
setActiveExample(example.id)}
+ className={`text-left w-full ${
+ activeExample === example.id ? "ring-2 ring-primary" : ""
+ }`}
+ >
+
+
+
+
+
+ {example.difficulty}
+
+
+ {example.title}
+ {example.description}
+
+
+
+ ))}
+
+
+
+ {/* Active Example Display */}
+
+
+
+
+
+
+ {currentExample.title}
+
+
+ {currentExample.difficulty}
+
+
+ {currentExample.description}
+
+
+
+
+
+
+
+ {/* All Examples (Tabbed) */}
+
+ All Examples
+
+
+ {examples.map((example) => (
+
+ {example.title.split(" ")[0]}
+
+ ))}
+
+ {examples.map((example) => (
+
+
+
+
+
+ {example.title}
+
+ {example.difficulty}
+
+
+ {example.description}
+
+
+
+
+
+
+ ))}
+
+
+
+ {/* The Foundry Note */}
+
+
+
+
+
+
+
The Foundry Certification
+
+ The Secure Leaderboard example above is the actual Foundry certification exam.
+ If you can implement a COPPA-compliant, PII-safe leaderboard that passes all validation tests,
+ you're ready for professional metaverse development.
+
+
+ Learn more about The Foundry →
+
+
+
+
+
+
+
+ {/* Navigation */}
+
+
+ ← CLI Reference
+
+
+ Back to Overview →
+
+
+
+ );
+}
diff --git a/client/pages/docs/lang/DocsLangOverview.tsx b/client/pages/docs/lang/DocsLangOverview.tsx
new file mode 100644
index 00000000..f34af2f7
--- /dev/null
+++ b/client/pages/docs/lang/DocsLangOverview.tsx
@@ -0,0 +1,380 @@
+import { Link } from "react-router-dom";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import {
+ Package,
+ Terminal,
+ BookOpen,
+ Code,
+ Zap,
+ Shield,
+ Users,
+ ExternalLink,
+ ArrowRight,
+ CheckCircle2,
+ FileText,
+ Github,
+ Globe,
+ Lock,
+ Copy,
+} from "lucide-react";
+import { useState } from "react";
+
+function CopyButton({ text }: { text: string }) {
+ const [copied, setCopied] = useState(false);
+ const handleCopy = async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ };
+ return (
+
+ {copied ? : }
+
+ );
+}
+
+function CodeBlock({ code, language = "aethex" }: { code: string; language?: string }) {
+ return (
+
+ );
+}
+
+const docSections = [
+ {
+ title: "Quick Start",
+ description: "Get up and running in 5 minutes",
+ icon: Zap,
+ href: "/docs/lang/quickstart",
+ color: "text-yellow-500",
+ bgColor: "bg-yellow-500/10",
+ },
+ {
+ title: "Language Syntax",
+ description: "Learn realities, journeys, and cross-platform sync",
+ icon: Code,
+ href: "/docs/lang/syntax",
+ color: "text-blue-500",
+ bgColor: "bg-blue-500/10",
+ },
+ {
+ title: "CLI Reference",
+ description: "Command line compiler and tools",
+ icon: Terminal,
+ href: "/docs/lang/cli",
+ color: "text-green-500",
+ bgColor: "bg-green-500/10",
+ },
+ {
+ title: "Examples",
+ description: "Real-world code examples and patterns",
+ icon: FileText,
+ href: "/docs/lang/examples",
+ color: "text-purple-500",
+ bgColor: "bg-purple-500/10",
+ },
+];
+
+const features = [
+ {
+ icon: Globe,
+ title: "Cross-Platform Native",
+ description: "Deploy to Roblox, UEFN, Unity, VRChat, Spatial, and Web",
+ },
+ {
+ icon: Users,
+ title: "Universal Passport",
+ description: "Single identity system across all metaverse platforms",
+ },
+ {
+ icon: Shield,
+ title: "Compliance-First",
+ description: "Built-in COPPA/FERPA/PII protection",
+ },
+ {
+ icon: Package,
+ title: "Standard Library",
+ description: "Battle-tested utilities for auth, data sync, and safety",
+ },
+];
+
+const platforms = [
+ { name: "JavaScript", status: "ready" },
+ { name: "Roblox (Lua)", status: "ready" },
+ { name: "UEFN (Verse)", status: "coming" },
+ { name: "Unity (C#)", status: "coming" },
+];
+
+const helloWorldCode = `reality HelloWorld {
+ platforms: all
+}
+
+journey Greet(name) {
+ platform: all
+ notify "Hello, " + name + "!"
+}`;
+
+const crossPlatformCode = `import { Passport } from "@aethex.os/core"
+
+reality MyGame {
+ platforms: [roblox, uefn, web]
+}
+
+journey AuthenticatePlayer(username) {
+ platform: all
+
+ let passport = new Passport(username)
+
+ when passport.verify() {
+ sync passport across [roblox, uefn, web]
+ notify "Welcome, " + username + "!"
+ }
+}`;
+
+export default function DocsLangOverview() {
+ return (
+
+ {/* Hero Section */}
+
+
+
+ v1.0.0
+
+
+ MIT License
+
+
+ AeThex Language
+
+ Write once. Build everywhere. Comply by default.
+
+
+ AeThex is a programming language for cross-platform metaverse development.
+ Write your game logic, authentication, and compliance rules once, then compile
+ to JavaScript, Lua (Roblox), Verse (UEFN), and C# (Unity).
+
+
+ {/* Install Command */}
+
+
+
+
+ npm install -g @aethex.os/cli
+
+
+
+
+
+
+
+
+ {/* Platform Support */}
+
+ Compilation Targets
+
+ {platforms.map((platform) => (
+
+ {platform.status === "ready" && }
+ {platform.name}
+ {platform.status === "coming" && " (Coming Soon)"}
+
+ ))}
+
+
+
+ {/* Documentation Sections */}
+
+ Documentation
+
+ {docSections.map((section) => (
+
+
+
+
+
+
+
+ {section.title}
+ {section.description}
+
+
+
+
+ ))}
+
+
+
+ {/* Hello World Example */}
+
+ Hello World
+
+ Create hello.aethex:
+
+
+
+
+ aethex compile hello.aethex
+
+
+ node hello.js
+
+
+
+
+ {/* Cross-Platform Example */}
+
+ Cross-Platform Authentication
+
+ One codebase, deployed everywhere:
+
+
+
+
+ {/* Features */}
+
+ Why AeThex?
+
+ {features.map((feature) => (
+
+
+
+
+
+
{feature.title}
+
{feature.description}
+
+
+ ))}
+
+
+
+ {/* npm Packages */}
+
+ npm Packages
+
+
+
+
+
+ @aethex.os/cli
+
+ Command line compiler
+
+
+
+ View on npm
+
+
+
+
+
+
+
+ @aethex.os/core
+
+ Standard library
+
+
+
+ View on npm
+
+
+
+
+
+
+ {/* The Foundry */}
+
+
+
+
+ The Foundry Certification
+
+ AeThex is the official language taught at The AeThex Foundry certification program.
+ Learn to build compliant, cross-platform metaverse experiences.
+
+
+
+
+
+
+ {/* Quick Links */}
+
+
+ );
+}
diff --git a/client/pages/docs/lang/DocsLangQuickstart.tsx b/client/pages/docs/lang/DocsLangQuickstart.tsx
new file mode 100644
index 00000000..c4018137
--- /dev/null
+++ b/client/pages/docs/lang/DocsLangQuickstart.tsx
@@ -0,0 +1,354 @@
+import { Link } from "react-router-dom";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import {
+ Terminal,
+ CheckCircle2,
+ Copy,
+ ArrowRight,
+ FileText,
+ Folder,
+ ExternalLink,
+} from "lucide-react";
+import { useState } from "react";
+
+function CopyButton({ text }: { text: string }) {
+ const [copied, setCopied] = useState(false);
+ const handleCopy = async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ };
+ return (
+
+ {copied ? : }
+
+ );
+}
+
+function CodeBlock({ code, language = "bash" }: { code: string; language?: string }) {
+ return (
+
+ );
+}
+
+function StepCard({ number, title, children }: { number: number; title: string; children: React.ReactNode }) {
+ return (
+
+
+ {number}
+
+
+ {title}
+
+
+ {children}
+
+
+ );
+}
+
+const installCode = `# Install the CLI globally
+npm install -g @aethex.os/cli
+
+# Verify installation
+aethex --version`;
+
+const newProjectCode = `aethex new my-first-game
+cd my-first-game
+npm install`;
+
+const mainAethexCode = `reality MyFirstGame {
+ platforms: [roblox, web]
+}
+
+journey WelcomePlayer(username) {
+ platform: all
+ notify "Welcome, " + username + "!"
+}`;
+
+const compileCode = `# Compile to JavaScript
+npm run build
+
+# Run it
+node build/main.js
+
+# Or compile to Roblox
+npm run build:roblox`;
+
+const authExampleCode = `import { Passport } from "@aethex.os/core"
+
+journey Login(username) {
+ let passport = new Passport(username)
+
+ when passport.verify() {
+ sync passport across [roblox, web]
+ notify "Logged in everywhere!"
+ }
+}`;
+
+const piiExampleCode = `import { SafeInput } from "@aethex.os/core"
+
+journey SubmitScore(player, score) {
+ let validation = SafeInput.validate(score)
+
+ when validation.valid {
+ # Safe to submit
+ notify "Score: " + score
+ } otherwise {
+ # PII detected!
+ notify "Error: " + validation.message
+ }
+}`;
+
+const projectStructure = `my-project/
+├── aethex.config.json # Config file
+├── package.json # npm dependencies
+├── src/
+│ ├── main.aethex # Your code
+│ ├── auth.aethex
+│ └── game.aethex
+└── build/
+ ├── main.js # Compiled JavaScript
+ └── main.lua # Compiled Lua`;
+
+const stdlibCode = `# Import from @aethex.os/core
+import { Passport, DataSync, SafeInput, Compliance } from "@aethex.os/core"
+
+# Import from @aethex.os/roblox (platform-specific)
+import { RemoteEvent, Leaderboard } from "@aethex.os/roblox"`;
+
+const commonPatterns = {
+ auth: `journey Login(user) {
+ when user.verify() {
+ sync user.passport across [roblox, web]
+ }
+}`,
+ datasync: `journey SaveProgress(player) {
+ sync player.stats across [roblox, uefn, web]
+}`,
+ pii: `let result = SafeInput.validate(userInput)
+when result.valid {
+ # Safe to use
+}`,
+ coppa: `when Compliance.isCOPPACompliant(user.age) {
+ # User is 13+
+}`,
+};
+
+export default function DocsLangQuickstart() {
+ return (
+
+ {/* Header */}
+
+
+ 5 Minute Guide
+
+ Quick Start
+
+ Get up and running with AeThex in 5 minutes.
+
+
+
+ {/* Installation */}
+
+
+ {/* Steps */}
+
+ Your First AeThex Program
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Example Projects */}
+
+ Example Projects
+
+
+
+
+ Cross-Platform Authentication
+ Authenticate users across multiple platforms with one codebase
+
+
+
+
+ Compile and run:
+ aethex compile auth.aethex && node auth.js
+
+
+
+
+
+
+
+ PII-Safe Leaderboard
+ Foundry Exam
+
+
+ This is the Foundry certification exam - if you can build this correctly,
+ you're ready to work in metaverse development.
+
+
+
+
+
+
+
+
+
+ {/* Compilation Targets */}
+
+ Compilation Targets
+
+
+
+ {/* Watch Mode */}
+
+ Watch Mode
+ Auto-recompile on file save:
+
+
+
+ {/* Project Structure */}
+
+
+ {/* Standard Library */}
+
+
+ {/* Common Patterns */}
+
+ Common Patterns
+
+
+
+ Authentication
+
+
+
+
+
+
+
+ Data Sync
+
+
+
+
+
+
+
+ PII Protection
+
+
+
+
+
+
+
+ COPPA Compliance
+
+
+
+
+
+
+
+
+ {/* Next Steps */}
+
+ Next Steps
+
+
+
+
+
+
+ Language Syntax
+
+ Learn realities, journeys, and more
+
+
+
+
+
+
+
+
+ Examples
+
+ View more code examples
+
+
+
+
+
+
+ {/* Getting Help */}
+
+
+ );
+}
diff --git a/client/pages/docs/lang/DocsLangSyntax.tsx b/client/pages/docs/lang/DocsLangSyntax.tsx
new file mode 100644
index 00000000..948d4dc0
--- /dev/null
+++ b/client/pages/docs/lang/DocsLangSyntax.tsx
@@ -0,0 +1,365 @@
+import { Link } from "react-router-dom";
+import { Badge } from "@/components/ui/badge";
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import {
+ CheckCircle2,
+ Copy,
+ Code,
+ Layers,
+ Zap,
+ Globe,
+ GitBranch,
+} from "lucide-react";
+import { useState } from "react";
+
+function CopyButton({ text }: { text: string }) {
+ const [copied, setCopied] = useState(false);
+ const handleCopy = async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ };
+ return (
+
+ {copied ? : }
+
+ );
+}
+
+function CodeBlock({ code, language = "aethex" }: { code: string; language?: string }) {
+ return (
+
+ );
+}
+
+const realitiesCode = `reality GameName {
+ platforms: [roblox, uefn, web]
+ type: "multiplayer"
+}`;
+
+const journeysCode = `journey ProcessScore(player, score) {
+ platform: all
+
+ # Automatically scrubs PII before processing
+ when score > 1000 {
+ notify "High score achieved!"
+ }
+}`;
+
+const syncCode = `import { Passport } from "@aethex.os/core"
+
+journey SaveProgress(player) {
+ platform: all
+
+ let passport = player.passport
+ sync passport across [roblox, uefn, web]
+}`;
+
+const conditionalCode = `when player.age < 13 {
+ # COPPA compliance automatic
+ notify "Parent permission required"
+} otherwise {
+ # Full features unlocked
+ reveal player.stats
+}`;
+
+const platformSpecificCode = `journey DisplayLeaderboard() {
+ platform: roblox {
+ # Roblox-specific code
+ reveal leaderboardGUI
+ }
+
+ platform: web {
+ # Web-specific code
+ reveal leaderboardHTML
+ }
+}`;
+
+const coreLibraryCode = `import { Passport, DataSync, SafeInput, Compliance } from "@aethex.os/core"
+
+# Passport - Universal identity
+let passport = new Passport(userId, username)
+passport.verify()
+passport.syncAcross([roblox, web])
+
+# DataSync - Cross-platform data
+DataSync.sync(playerData, [roblox, uefn])
+
+# SafeInput - PII protection
+let result = SafeInput.validate(userInput)
+when result.valid {
+ # Input is safe
+}
+
+# Compliance - COPPA/FERPA checks
+when Compliance.isCOPPACompliant(user.age) {
+ # Can collect data
+}`;
+
+const robloxLibraryCode = `import { RemoteEvent, Leaderboard } from "@aethex.os/roblox"
+
+# Roblox-specific features
+let event = RemoteEvent.new("PlayerJoined")
+event.FireAllClients(player)
+
+let stats = Leaderboard.new("Points", 0)
+Leaderboard.updateScore(player, "Points", 100)`;
+
+const configCode = `{
+ "targets": ["javascript", "roblox", "uefn"],
+ "srcDir": "src",
+ "outDir": "build",
+ "stdlib": true,
+ "compliance": {
+ "coppa": true,
+ "ferpa": true,
+ "piiDetection": true
+ }
+}`;
+
+const projectStructureCode = `my-game/
+├── aethex.config.json # Compilation settings
+├── package.json # npm dependencies
+├── src/
+│ ├── main.aethex # Entry point
+│ ├── auth.aethex # Authentication logic
+│ └── game.aethex # Game logic
+└── build/
+ ├── main.js # JavaScript output
+ └── main.lua # Roblox output`;
+
+const syntaxSections = [
+ {
+ id: "realities",
+ title: "Realities (Namespaces)",
+ icon: Layers,
+ description: "Define your game or application namespace",
+ code: realitiesCode,
+ },
+ {
+ id: "journeys",
+ title: "Journeys (Functions)",
+ icon: Zap,
+ description: "Create functions that run across platforms",
+ code: journeysCode,
+ },
+ {
+ id: "sync",
+ title: "Cross-Platform Sync",
+ icon: Globe,
+ description: "Synchronize data across all platforms with one line",
+ code: syncCode,
+ },
+ {
+ id: "conditionals",
+ title: "Conditional Logic",
+ icon: GitBranch,
+ description: "Use when/otherwise for conditions with built-in compliance",
+ code: conditionalCode,
+ },
+ {
+ id: "platform",
+ title: "Platform-Specific Code",
+ icon: Code,
+ description: "Write code that only runs on specific platforms",
+ code: platformSpecificCode,
+ },
+];
+
+export default function DocsLangSyntax() {
+ return (
+
+ {/* Header */}
+
+
+ Language Reference
+
+ Language Syntax
+
+ Learn the AeThex syntax, from realities and journeys to cross-platform sync.
+
+
+
+ {/* Syntax Sections */}
+
+ {syntaxSections.map((section) => (
+
+
+
+
+ {section.title}
+
+ {section.description}
+
+
+
+
+
+ ))}
+
+
+ {/* Standard Library */}
+
+ Standard Library
+
+
+
+ @aethex.os/core
+ @aethex.os/roblox
+
+
+
+
+ Core Library
+
+ Universal utilities for authentication, data sync, and compliance
+
+
+
+
+
+
+
+
+
+
+ Roblox Library
+
+ Roblox-specific features and integrations
+
+
+
+
+
+
+
+
+
+
+ {/* Configuration */}
+
+ Configuration
+
+ Configure your project with aethex.config.json:
+
+
+
+
+ {/* Project Structure */}
+
+
+ {/* Compilation Targets Table */}
+
+ Compilation Targets
+
+
+
+
+ Target
+ Extension
+ Use Case
+ Status
+
+
+
+
+ JavaScript
+ .js
+ Web applications, Node.js backends
+ Ready
+
+
+ Roblox (Lua)
+ .lua
+ Roblox games
+ Ready
+
+
+ UEFN (Verse)
+ .verse
+ Fortnite Creative
+ Coming Soon
+
+
+ Unity (C#)
+ .cs
+ Unity games, VRChat
+ Coming Soon
+
+
+
+
+
+
+ {/* Keywords Reference */}
+
+ Keywords Reference
+
+
+
+ Declarations
+
+
+ reality - Define a namespace
+ journey - Define a function
+ let - Declare a variable
+ import - Import from libraries
+
+
+
+
+ Control Flow
+
+
+ when - Conditional (if)
+ otherwise - Else clause
+ return - Return from journey
+
+
+
+
+ Cross-Platform
+
+
+ sync ... across - Sync data
+ platform: - Target platforms
+ platforms: - Reality platforms
+
+
+
+
+ Actions
+
+
+ notify - Output message
+ reveal - Return/expose data
+ new - Create instance
+
+
+
+
+
+ {/* Navigation */}
+
+
+ ← Quick Start
+
+
+ CLI Reference →
+
+
+
+ );
+}