Create DocsPlatform page
cgen-f86c692f6743484bb15d1bce8e6bead4
This commit is contained in:
parent
7103e89029
commit
a90ddb69e0
1 changed files with 354 additions and 0 deletions
354
client/pages/docs/DocsPlatform.tsx
Normal file
354
client/pages/docs/DocsPlatform.tsx
Normal file
|
|
@ -0,0 +1,354 @@
|
|||
import {
|
||||
Card,
|
||||
CardContent,
|
||||
CardDescription,
|
||||
CardHeader,
|
||||
CardTitle,
|
||||
} from "@/components/ui/card";
|
||||
import { Badge } from "@/components/ui/badge";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import {
|
||||
LayoutDashboard,
|
||||
IdCard,
|
||||
Users,
|
||||
ActivitySquare,
|
||||
Sparkles,
|
||||
Compass,
|
||||
Workflow,
|
||||
ShieldCheck,
|
||||
Database,
|
||||
BarChart3,
|
||||
Globe,
|
||||
ArrowRight,
|
||||
Link as LinkIcon,
|
||||
} from "lucide-react";
|
||||
import { Link } from "react-router-dom";
|
||||
|
||||
const platformPillars = [
|
||||
{
|
||||
title: "Unified dashboard",
|
||||
description:
|
||||
"Monitor deployments, live metrics, and release health from a single control surface. Jump into incidents, approvals, and audit trails without leaving the workspace.",
|
||||
icon: LayoutDashboard,
|
||||
href: "/dashboard",
|
||||
cta: "Visit dashboard",
|
||||
},
|
||||
{
|
||||
title: "AeThex Passport",
|
||||
description:
|
||||
"Give builders portable identity with verified skills, achievements, and cross-product progress synced to their Passport profile.",
|
||||
icon: IdCard,
|
||||
href: "/passport/me",
|
||||
cta: "Open passport",
|
||||
},
|
||||
{
|
||||
title: "Collaboration",
|
||||
description:
|
||||
"Coordinate teams with realms, role-based access, and shared project templates. Invite talent directly from the community directory.",
|
||||
icon: Users,
|
||||
href: "/community",
|
||||
cta: "Meet the community",
|
||||
},
|
||||
{
|
||||
title: "Live operations",
|
||||
description:
|
||||
"Run live experiences with analytics, status pages, and automated incident workflows wired into AeThex services.",
|
||||
icon: ActivitySquare,
|
||||
href: "/status",
|
||||
cta: "Check status",
|
||||
},
|
||||
];
|
||||
|
||||
const collaborationWorkflows = [
|
||||
{
|
||||
label: "Onboard & align",
|
||||
description:
|
||||
"Welcome teammates through the guided onboarding flow, capture their interests, and assign the right mentorship programs from day one.",
|
||||
highlight: "Onboarding modules cover personal info, interests, and project preferences so teams ramp quickly.",
|
||||
},
|
||||
{
|
||||
label: "Build together",
|
||||
description:
|
||||
"Kick off projects with shared canvases, synced task boards, and CLI-generated environments. Use the realm switcher to target the correct workspace.",
|
||||
highlight: "In-app toasts notify collaborators when schema changes, deployments, or reviews need attention.",
|
||||
},
|
||||
{
|
||||
label: "Launch & iterate",
|
||||
description:
|
||||
"Promote builds through AeThex Deploy, track KPIs in the analytics feed, and publish release notes via the changelog tools.",
|
||||
highlight: "Community announcements and blog posts keep players and stakeholders in the loop automatically.",
|
||||
},
|
||||
];
|
||||
|
||||
const experienceModules = [
|
||||
{
|
||||
name: "Social feed",
|
||||
description:
|
||||
"Share updates, prototypes, and patch notes in the feed. The composer supports media, Markdown, and rollout tags for targeted audiences.",
|
||||
href: "/feed",
|
||||
},
|
||||
{
|
||||
name: "Mentorship programs",
|
||||
description:
|
||||
"Match emerging studios with veteran advisors. Outline project goals, track sessions, and graduate mentors into full collaborators.",
|
||||
href: "/mentorship",
|
||||
},
|
||||
{
|
||||
name: "Community showcases",
|
||||
description:
|
||||
"Highlight standout creators, publish case studies, and route interested partners to booking forms right from the community page.",
|
||||
href: "/community",
|
||||
},
|
||||
{
|
||||
name: "Profile passport",
|
||||
description:
|
||||
"Curate public achievements, experience levels, and verified skill badges. Use the passport summary widget across marketing surfaces.",
|
||||
href: "/profile",
|
||||
},
|
||||
];
|
||||
|
||||
const analyticsHighlights = [
|
||||
{
|
||||
title: "Realtime insights",
|
||||
detail:
|
||||
"Project metrics stream into dashboards with per-environment filters. Combine ingestion data with custom signals exposed via the REST API.",
|
||||
icon: BarChart3,
|
||||
},
|
||||
{
|
||||
title: "Governed data",
|
||||
detail:
|
||||
"Role-aware views ensure sensitive dashboards only appear for authorized users. Export snapshots or schedule recurring digests.",
|
||||
icon: ShieldCheck,
|
||||
},
|
||||
{
|
||||
title: "Operational history",
|
||||
detail:
|
||||
"Every deployment, incident, and advisory event lands in the shared timeline so teams can audit changes months later.",
|
||||
icon: Database,
|
||||
},
|
||||
];
|
||||
|
||||
const governanceChecklist = [
|
||||
"OAuth connections let studios link third-party identity providers for single sign-on and group provisioning.",
|
||||
"Realm switcher enforces scoped access to projects, assets, and financial data.",
|
||||
"Compliance exports bundle audit logs, access reviews, and deployment manifests for regulatory submissions.",
|
||||
"Automated alerts surface risk when environments drift or policy checks fail during deploys.",
|
||||
];
|
||||
|
||||
const resourceLinks = [
|
||||
{
|
||||
title: "Explore onboarding",
|
||||
href: "/onboarding",
|
||||
label: "Review builder flow",
|
||||
},
|
||||
{
|
||||
title: "Configure OAuth",
|
||||
href: "/settings/oauth",
|
||||
label: "Manage identity",
|
||||
},
|
||||
{
|
||||
title: "Launch new project",
|
||||
href: "/projects/new",
|
||||
label: "Start from template",
|
||||
},
|
||||
{
|
||||
title: "Track live status",
|
||||
href: "/status",
|
||||
label: "Monitor ops",
|
||||
},
|
||||
];
|
||||
|
||||
export default function DocsPlatform() {
|
||||
return (
|
||||
<div className="space-y-12">
|
||||
<section className="space-y-4">
|
||||
<Badge className="bg-cyan-500/20 text-cyan-100 uppercase tracking-wide">
|
||||
<Sparkles className="mr-2 h-3 w-3" />
|
||||
Platform Experience
|
||||
</Badge>
|
||||
<h2 className="text-3xl font-semibold text-white">Deliver cohesive player and builder journeys on AeThex</h2>
|
||||
<p className="text-gray-300 max-w-3xl">
|
||||
Beyond deployment pipelines and CLI tooling, AeThex bundles collaboration, identity, and live-ops systems so
|
||||
teams can craft unforgettable experiences. Use this guide to orient new stakeholders and plan end-to-end
|
||||
platform rollouts.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section id="pillars" className="space-y-6">
|
||||
<div className="flex items-center gap-3">
|
||||
<LayoutDashboard className="h-6 w-6 text-cyan-300" />
|
||||
<h3 className="text-2xl font-semibold text-white">Core pillars</h3>
|
||||
</div>
|
||||
<div className="grid gap-6 md:grid-cols-2">
|
||||
{platformPillars.map((pillar) => {
|
||||
const Icon = pillar.icon;
|
||||
return (
|
||||
<Card key={pillar.title} className="bg-slate-900/60 border-slate-700">
|
||||
<CardHeader>
|
||||
<div className="flex items-center justify-between">
|
||||
<div className="flex items-center gap-3">
|
||||
<Icon className="h-6 w-6 text-cyan-300" />
|
||||
<CardTitle className="text-white text-lg">{pillar.title}</CardTitle>
|
||||
</div>
|
||||
<Badge variant="outline" className="text-xs text-cyan-200 border-cyan-500/40">
|
||||
Platform
|
||||
</Badge>
|
||||
</div>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<CardDescription className="text-gray-300 text-sm">
|
||||
{pillar.description}
|
||||
</CardDescription>
|
||||
<Button
|
||||
asChild
|
||||
variant="ghost"
|
||||
className="justify-start text-cyan-200 hover:text-cyan-100 hover:bg-cyan-500/10"
|
||||
>
|
||||
<Link to={pillar.href}>
|
||||
{pillar.cta}
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="workflows" className="space-y-6">
|
||||
<div className="flex items-center gap-3">
|
||||
<Workflow className="h-6 w-6 text-cyan-300" />
|
||||
<h3 className="text-2xl font-semibold text-white">Collaboration workflows</h3>
|
||||
</div>
|
||||
<div className="grid gap-6 md:grid-cols-3">
|
||||
{collaborationWorkflows.map((stage, index) => (
|
||||
<Card key={stage.label} className="bg-slate-900/60 border-slate-700">
|
||||
<CardHeader className="space-y-2">
|
||||
<Badge className="w-fit bg-cyan-600/30 text-cyan-100">Step {index + 1}</Badge>
|
||||
<CardTitle className="text-white text-lg flex items-center gap-2">
|
||||
<Globe className="h-5 w-5 text-cyan-300" />
|
||||
{stage.label}
|
||||
</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-3">
|
||||
<CardDescription className="text-gray-300 text-sm leading-relaxed">
|
||||
{stage.description}
|
||||
</CardDescription>
|
||||
<p className="text-cyan-200 text-sm bg-cyan-500/10 border border-cyan-500/30 rounded-lg p-3">
|
||||
{stage.highlight}
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="modules" className="space-y-6">
|
||||
<div className="flex items-center gap-3">
|
||||
<Compass className="h-6 w-6 text-cyan-300" />
|
||||
<h3 className="text-2xl font-semibold text-white">Experience modules</h3>
|
||||
</div>
|
||||
<div className="grid gap-4 md:grid-cols-2">
|
||||
{experienceModules.map((module) => (
|
||||
<Card key={module.name} className="bg-slate-900/60 border-slate-700">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-white text-base flex items-center justify-between">
|
||||
{module.name}
|
||||
<Badge variant="outline" className="text-xs text-cyan-200 border-cyan-500/40">
|
||||
Platform
|
||||
</Badge>
|
||||
</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<CardDescription className="text-gray-300 text-sm">
|
||||
{module.description}
|
||||
</CardDescription>
|
||||
<Button
|
||||
asChild
|
||||
variant="ghost"
|
||||
className="justify-start text-cyan-200 hover:text-cyan-100 hover:bg-cyan-500/10"
|
||||
>
|
||||
<Link to={module.href}>
|
||||
Learn more
|
||||
<LinkIcon className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="analytics" className="space-y-6">
|
||||
<div className="flex items-center gap-3">
|
||||
<BarChart3 className="h-6 w-6 text-cyan-300" />
|
||||
<h3 className="text-2xl font-semibold text-white">Insights & analytics</h3>
|
||||
</div>
|
||||
<div className="grid gap-6 md:grid-cols-3">
|
||||
{analyticsHighlights.map((item) => {
|
||||
const Icon = item.icon;
|
||||
return (
|
||||
<Card key={item.title} className="bg-slate-900/60 border-slate-700">
|
||||
<CardHeader>
|
||||
<div className="flex items-center gap-3">
|
||||
<Icon className="h-6 w-6 text-cyan-300" />
|
||||
<CardTitle className="text-white text-lg">{item.title}</CardTitle>
|
||||
</div>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<CardDescription className="text-gray-300 text-sm">
|
||||
{item.detail}
|
||||
</CardDescription>
|
||||
</CardContent>
|
||||
</Card>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="governance" className="space-y-6">
|
||||
<div className="flex items-center gap-3">
|
||||
<ShieldCheck className="h-6 w-6 text-cyan-300" />
|
||||
<h3 className="text-2xl font-semibold text-white">Governance checklist</h3>
|
||||
</div>
|
||||
<Card className="bg-slate-900/60 border-slate-700">
|
||||
<CardContent>
|
||||
<ul className="list-disc space-y-3 pl-6 text-gray-300 text-sm">
|
||||
{governanceChecklist.map((item) => (
|
||||
<li key={item}>{item}</li>
|
||||
))}
|
||||
</ul>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</section>
|
||||
|
||||
<section id="next-steps" className="rounded-2xl border border-cyan-500/40 bg-cyan-900/20 p-8">
|
||||
<div className="flex flex-col gap-6 md:flex-row md:items-center md:justify-between">
|
||||
<div className="space-y-2">
|
||||
<h3 className="text-2xl font-semibold text-white">Keep exploring the platform</h3>
|
||||
<p className="text-gray-300 max-w-2xl text-sm">
|
||||
Share this page with non-technical teammates. It links out to every major surface area so marketing,
|
||||
product, and operations groups can navigate confidently.
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid gap-3 md:grid-cols-2">
|
||||
{resourceLinks.map((resource) => (
|
||||
<Button
|
||||
key={resource.title}
|
||||
asChild
|
||||
size="lg"
|
||||
className="bg-cyan-600 hover:bg-cyan-500 text-white"
|
||||
>
|
||||
<Link to={resource.href}>
|
||||
{resource.label}
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Loading…
Reference in a new issue