forked from emre/www_projectmycelium_com
104 lines
4.1 KiB
TypeScript
104 lines
4.1 KiB
TypeScript
import { Container } from '@/components/Container'
|
|
import { Eyebrow, SectionHeader, P, Small } from '@/components/Texts'
|
|
|
|
const steps = [
|
|
{
|
|
number: '01',
|
|
title: 'Account Setup',
|
|
description:
|
|
'Create your Mycelium account and ensure GPU access is enabled.',
|
|
bullets: [
|
|
'Sign up and verify your account credentials.',
|
|
'Enable GPU access or request it from the Mycelium team.',
|
|
'Configure billing to align usage with your budget.',
|
|
],
|
|
},
|
|
{
|
|
number: '02',
|
|
title: 'Request GPU Resources',
|
|
description: 'Use the Mycelium GPU API to allocate the acceleration you need.',
|
|
bullets: [
|
|
'Describe the GPU profile (memory, cores, region) your workload requires.',
|
|
'Let smart contracts reserve and attest the selected hardware.',
|
|
'Receive deterministic allocation details for orchestration.',
|
|
],
|
|
},
|
|
{
|
|
number: '03',
|
|
title: 'Deploy & Monitor',
|
|
description:
|
|
'Launch your workload, integrate storage, and monitor performance from the dashboard.',
|
|
bullets: [
|
|
'Deploy via Kubernetes, containers, or custom runtimes.',
|
|
'Bind to Quantum-Safe Storage for datasets and checkpoints.',
|
|
'Track GPU utilization, cost, and health in real time.',
|
|
],
|
|
},
|
|
]
|
|
|
|
const workflow = 'Application → Mycelium GPU API → GPU Resource Allocation → Workload Execution'
|
|
|
|
export function GpuGettingStarted() {
|
|
return (
|
|
<section
|
|
id="gpu-getting-started"
|
|
className="relative overflow-hidden bg-gray-900 py-24 sm:py-32"
|
|
>
|
|
<div className="absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(34,211,238,0.12),transparent_60%)]" />
|
|
<Container className="relative">
|
|
<div className="mx-auto max-w-3xl text-center">
|
|
<Eyebrow className="tracking-[0.32em] uppercase text-cyan-300">
|
|
Getting Started
|
|
</Eyebrow>
|
|
<SectionHeader as="h2" color="light" className="mt-6">
|
|
Allocate, run, and observe in three moves.
|
|
</SectionHeader>
|
|
<P color="lightSecondary" className="mt-6">
|
|
Mycelium GPU keeps onboarding simple—declare what you need, deploy
|
|
your workload, and let the mesh guarantee performance with full
|
|
transparency.
|
|
</P>
|
|
</div>
|
|
<div className="mt-16 grid gap-10 lg:grid-cols-3">
|
|
{steps.map((step) => (
|
|
<div
|
|
key={step.title}
|
|
className="flex h-full flex-col rounded-3xl border border-white/10 bg-white/3 p-8 backdrop-blur-sm transition hover:-translate-y-1 hover:border-cyan-300/50 hover:bg-white/6"
|
|
>
|
|
<div className="flex items-center justify-between">
|
|
<Small className="text-xs uppercase tracking-[0.4em] text-cyan-300">
|
|
{step.number}
|
|
</Small>
|
|
<span className="inline-flex size-10 items-center justify-center rounded-full border border-cyan-300/40 text-sm font-semibold uppercase tracking-[0.25em] text-cyan-200">
|
|
Go
|
|
</span>
|
|
</div>
|
|
<h3 className="mt-6 text-xl font-semibold text-white">{step.title}</h3>
|
|
<p className="mt-4 text-sm leading-relaxed text-gray-300">
|
|
{step.description}
|
|
</p>
|
|
<ul className="mt-6 space-y-3 text-sm text-gray-300">
|
|
{step.bullets.map((bullet) => (
|
|
<li
|
|
key={bullet}
|
|
className="flex items-start gap-3 rounded-2xl border border-cyan-500/10 bg-cyan-500/5 p-3 leading-relaxed"
|
|
>
|
|
<span className="mt-1 inline-block size-2 rounded-full bg-cyan-300" />
|
|
<span>{bullet}</span>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
))}
|
|
</div>
|
|
<div className="mt-16 rounded-3xl border border-white/10 bg-white/3 p-6 text-center backdrop-blur-sm">
|
|
<p className="text-sm font-medium uppercase tracking-[0.3em] text-cyan-200">
|
|
Basic Workflow
|
|
</p>
|
|
<p className="mt-4 text-base text-gray-100">{workflow}</p>
|
|
</div>
|
|
</Container>
|
|
</section>
|
|
)
|
|
}
|