diff --git a/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx b/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx index fee18a8b424..cb6ba11bddc 100644 --- a/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx @@ -17,30 +17,29 @@ export function ExamplesSection() { const gridExamples = examples.slice(2, 6) return ( -
- {/* Header row */} -
-
-
-

- What you can build
- with Edge Functions -

- - View all examples - -
+
+ {/* Header */} +
+
+

+ What you can build
+ with Edge Functions +

+ + View all examples +
- {/* Featured row - 2 large cells */} -
-
-
- {featuredExamples.map((example) => { + {/* Cards */} +
+
+ {/* Featured row - 2 large cells */} +
+ {featuredExamples.map((example, i) => { const tag = example.tags?.[0] const icon = tag ? EXAMPLE_ICON[tag] : undefined return ( @@ -48,7 +47,45 @@ export function ExamplesSection() { key={example.title} href={example.repo_url ?? '#'} target="_blank" - className="group flex flex-col border-b md:border-b-0 md:border-r border-border last:border-r-0 last:border-b-0 px-6 py-8 hover:bg-surface-75/50 transition-colors" + className={`group flex flex-col px-6 py-8 hover:bg-surface-75/50 transition-colors ${ + i < featuredExamples.length - 1 + ? 'border-b md:border-b-0 md:border-r border-border' + : '' + }`} + > +
+ {icon && ( + + )} +
+

{example.title}

+

+ {example.description} +

+ + ) + })} +
+ + {/* Grid row - 4 smaller cells */} +
+ {gridExamples.map((example, i) => { + const tag = example.tags?.[0] + const icon = tag ? EXAMPLE_ICON[tag] : undefined + return ( +
{icon && ( @@ -69,38 +106,6 @@ export function ExamplesSection() {
- - {/* Grid row - 4 smaller cells */} -
-
- {gridExamples.map((example) => { - const tag = example.tags?.[0] - const icon = tag ? EXAMPLE_ICON[tag] : undefined - return ( - -
- {icon && ( - - )} -
-

{example.title}

-

- {example.description} -

- - ) - })} -
-
) } diff --git a/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx b/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx index 4620ac2e857..f1db9fd8ae7 100644 --- a/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx +++ b/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx @@ -72,109 +72,109 @@ export function IntegratesSectionClient({ useCases }: { useCases: UseCase[] }) { } return ( -
- {/* Header row */} -
-
-

- Integrates with the Supabase ecosystem -

-
+
+ {/* Header */} +
+

+ Integrates with the Supabase ecosystem +

{/* Content */} -
-
- {/* Left: vertical tabs */} -
- {useCases.map((useCase, index) => { - const isActive = index === activeIdx - return ( - - ) - })} -
+

+ {(() => { + const Icon = ICONS[useCase.icon] + return + })()} + {useCase.label} +

+

+ {useCase.paragraph} +

+ {/* Progress bar — hide on last item to avoid doubling with section border */} +
+ {isActive && ( + 99.5 ? 'opacity-0' : 'opacity-100' + )} + style={{ x: `${progress - 100}%` }} + /> + )} +
+ + ) + })} +
- {/* Right: code area */} -
- - + + +
+
+ + + -
-
- - - - Documentation - - - - + Documentation + + + + +
diff --git a/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx b/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx index 3e43da05a57..ac22ab561c0 100644 --- a/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx @@ -123,38 +123,38 @@ function LocalDXCard() { export function LocalDXSection() { return ( -
- {/* Header row */} -
-
-
-

- Delightful DX from
- local to production -

-

- Edge Functions are developed using{' '} - - Deno - - , an open source JavaScript runtime that ensures maximum power and flexibility. - Migrate in and out at any time with no vendor lock-in. -

-
+
+ {/* Header */} +
+
+

+ Delightful DX from
+ local to production +

+

+ Edge Functions are developed using{' '} + + Deno + + , an open source JavaScript runtime that ensures maximum power and flexibility. Migrate + in and out at any time with no vendor lock-in. +

{/* Bento grid */} -
-
- - - - +
+
+
+ + + + +
diff --git a/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx b/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx index 33fc3e1f9b1..353bbce85ab 100644 --- a/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx @@ -55,26 +55,33 @@ function ObservabilityCard({ export function ObservabilitySection() { return ( -
- {/* Header row */} -
-
-

- Built-in observability +
+ {/* Header */} +
+
+

+ Debug and monitor with
+ built-in observability

+

+ Monitor, debug, and optimize your Edge Functions with realtime logs, queryable log + explorer, and health dashboards — all built into the Supabase Dashboard. +

{/* 3-column grid */} -
-
- {cards.map((card, i) => ( - - ))} +
+
+
+ {cards.map((card, i) => ( + + ))} +