import type { ComponentType, SVGProps } from 'react'
import {
BuildIcon,
DeployIcon,
MonitorIcon,
} from '@/app/(landing)/components/lifecycle/components/lifecycle-icons'
/**
* Landing lifecycle - the three axes along which teams use Sim: build, deploy,
* monitor. A split-statement `
` (headline color + body color, matching the
* features header) tops a three-column grid; each column pairs an isometric
* line-art icon with an `` axis title and a one-line description.
*
* The columns carry a left hairline (`--border`) for the technical, reference-
* style rhythm; the icon area is `flex-1` so the three titles bottom-align
* regardless of icon height. Icons inherit `--text-muted` via `currentColor`.
*
* Inter-section spacing is owned by the `` flex `gap` in `landing.tsx`;
* this section carries no vertical padding. Horizontal padding (`px-20`) matches
* the navbar and hero so the headline starts on the wordmark's line, and the
* section is capped and centered at the shared `max-w-[1460px]`. First
* section after the hero, above {@link Features}.
*/
interface Axis {
title: string
description: string
Icon: ComponentType>
}
const AXES: Axis[] = [
{
title: 'Build',
description:
'Build agents visually, in natural language, or with code, wiring up any model and 1,000+ integrations.',
Icon: BuildIcon,
},
{
title: 'Deploy',
description:
'Ship agents to production as APIs, Slack bots, or scheduled jobs, live in a click.',
Icon: DeployIcon,
},
{
title: 'Monitor',
description: 'Trace every run block by block, with full logs of what each agent did and why.',
Icon: MonitorIcon,
},
]
export function Lifecycle() {
return (
From idea to production.{' '}
Build agents, deploy them, and monitor every run, all in one workspace.
{AXES.map(({ title, description, Icon }) => (
-
{title}
{description}
))}
)
}