Skip to content

Commit 40cc6c6

Browse files
committed
feat: step 2 copy
1 parent ffb473c commit 40cc6c6

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

studio/src/components/onboarding/step-2.tsx

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@ import { useEffect } from 'react';
22
import { useOnboarding } from '@/hooks/use-onboarding';
33
import { OnboardingContainer } from './onboarding-container';
44
import { OnboardingNavigation } from './onboarding-navigation';
5+
import { ActivityLogIcon, CheckCircledIcon, Component1Icon, RocketIcon } from '@radix-ui/react-icons';
6+
7+
const FeatureCard = ({
8+
icon,
9+
title,
10+
children,
11+
}: {
12+
icon: React.ReactNode;
13+
title: string;
14+
children: React.ReactNode;
15+
}) => {
16+
return (
17+
<div className="flex flex-col gap-3 rounded-lg border bg-card/50 p-5">
18+
<div className="flex size-9 items-center justify-center rounded-md bg-primary/10">{icon}</div>
19+
<h3 className="text-sm font-semibold">{title}</h3>
20+
<p className="text-[0.8rem] leading-relaxed text-muted-foreground">{children}</p>
21+
</div>
22+
);
23+
};
524

625
export const Step2 = () => {
726
const { setStep, setSkipped } = useOnboarding();
@@ -12,7 +31,32 @@ export const Step2 = () => {
1231

1332
return (
1433
<OnboardingContainer>
15-
<h2 className="text-2xl font-semibold tracking-tight">Step 2</h2>
34+
<p className="text-base text-muted-foreground">
35+
A quick look at what Cosmo does and why it matters for your team.
36+
</p>
37+
38+
<div className="grid w-full grid-cols-1 gap-4 text-left sm:grid-cols-2">
39+
<FeatureCard icon={<Component1Icon className="size-5 text-primary" />} title="Many services. One graph.">
40+
GraphQL Federation lets separate services feel like one API. With Cosmo, developers get one place to query
41+
data instead of stitching together calls across many backends.
42+
</FeatureCard>
43+
44+
<FeatureCard icon={<RocketIcon className="size-5 text-primary" />} title="Teams move without bottlenecks.">
45+
Each team can own and evolve its part of the graph on its own schedule. Cosmo is built so service teams can
46+
ship independently while platform teams keep visibility and control.
47+
</FeatureCard>
48+
49+
<FeatureCard icon={<CheckCircledIcon className="size-5 text-primary" />} title="Changes stay safe.">
50+
Cosmo helps catch unsafe schema changes before they reach production. That means teams can iterate faster
51+
without surprising the apps and clients that rely on the graph.
52+
</FeatureCard>
53+
54+
<FeatureCard icon={<ActivityLogIcon className="size-5 text-primary" />} title="See what's happening.">
55+
Built-in metrics and OpenTelemetry tracing show how requests move through the graph and its services. When
56+
something slows down or fails, you can find it quickly and improve with confidence.
57+
</FeatureCard>
58+
</div>
59+
1660
<OnboardingNavigation onSkip={setSkipped} backHref="/onboarding/1" forward={{ href: '/onboarding/3' }} />
1761
</OnboardingContainer>
1862
);

0 commit comments

Comments
 (0)