Skip to content

Commit 82f73f1

Browse files
feat(web): landing page redesign updates (#1090)
Signed-off-by: Petr Kadlec <[email protected]> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
1 parent a58c81a commit 82f73f1

File tree

11 files changed

+222
-187
lines changed

11 files changed

+222
-187
lines changed

apps/beeai-ui/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
"@bprogress/next": "^3.2.10",
1616
"@carbon/colors": "^11.30.0",
1717
"@carbon/grid": "^11.33.0",
18-
"@carbon/icons-react": "^11.57.0",
18+
"@carbon/icons-react": "^11.65.0",
1919
"@carbon/layout": "^11.31.0",
2020
"@carbon/motion": "^11.25.0",
21-
"@carbon/react": "^1.83.0",
21+
"@carbon/react": "^1.89.0",
2222
"@carbon/styles": "^1.82.0",
2323
"@floating-ui/react": "^0.27.5",
2424
"@ibm/plex": "^6.4.1",

apps/beeai-web/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
"version": "0.3.1",
44
"private": true,
55
"peerDependencies": {
6-
"@bprogress/next": "*",
6+
"@carbon/react": "*",
77
"@carbon/icons-react": "*",
8+
"@bprogress/next": "*",
89
"@tanstack/react-query": "*",
910
"framer-motion": "*",
1011
"lottie-react": "*",
@@ -15,7 +16,6 @@
1516
"react-is": "*"
1617
},
1718
"dependencies": {
18-
"@carbon/react": "^1.83.0",
1919
"@i-am-bee/beeai-ui": "workspace:*",
2020
"clsx": "^2.1.1",
2121
"server-only": "^0.0.1",

apps/beeai-web/src/modules/home/Framework.tsx

Lines changed: 28 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
'use client';
7-
import { LogoPython, Plug, Rocket, SettingsAdjust, Unlocked, WorkflowAutomation } from '@carbon/icons-react';
7+
import { FlowConnection, InsertPage, LogoPython, Plug, SettingsAdjust, Shapes } from '@carbon/icons-react';
88
import { Theme, useTheme } from '@i-am-bee/beeai-ui';
99
import { useIsClient } from 'usehooks-ts';
1010

@@ -13,6 +13,7 @@ import { LayoutContainer } from '@/layouts/LayoutContainer';
1313

1414
import FrameworkGraphicsDark from './assets/framework-diagram-dark.svg';
1515
import FrameworkGraphicsLight from './assets/framework-diagram-light.svg';
16+
import type { FeatureItem } from './components/FeaturesList';
1617
import { FeaturesList } from './components/FeaturesList';
1718
import { HeadlineWithLink } from './components/HeadlineWithLink';
1819
import { TwoColumnGrid } from './components/TwoColumnGrid';
@@ -27,9 +28,8 @@ export function Framework() {
2728
<LayoutContainer asGrid>
2829
<TwoColumnGrid className={classes.info}>
2930
<HeadlineWithLink
30-
title="Framework"
31-
description="Build production-ready AI agents with enterprise-grade reliability, built-in caching, memory optimization,
32-
resource management, and real-time monitoring."
31+
title="beeai-framework"
32+
description="Build reliable, intelligent agents with our lightweight framework that goes beyond prompting and enforces rules."
3333
buttonProps={{ url: FRAMEWORK_QUICKSTART_LINK }}
3434
inverse
3535
/>
@@ -49,56 +49,40 @@ export function Framework() {
4949
);
5050
}
5151

52-
const FEATURES_ITEMS = [
52+
const FEATURES_ITEMS: FeatureItem[] = [
5353
{
54-
icon: Rocket,
55-
content: (
56-
<>
57-
<strong>Production-ready from day one</strong> with built-in caching, memory optimization, resource management
58-
and real-time monitoring with OpenTelemetry integration.
59-
</>
60-
),
54+
icon: FlowConnection,
55+
title: 'Dynamic workflows',
56+
content:
57+
'Use simple decorators to design multi-agent systems with advanced patterns like parallelism, retries, and replanning.',
6158
},
6259
{
63-
icon: WorkflowAutomation,
64-
content: (
65-
<>
66-
<strong>Workflow Orchestration</strong> connects agents seamlessly, passing tasks between them while maintaining
67-
context. Ensures reliable execution from simple to complex multi-agent processes.
68-
</>
69-
),
60+
icon: SettingsAdjust,
61+
title: 'Configuration over code',
62+
content: 'Define complex agent systems in YAML, for more predictable and maintainable orchestration.',
7063
},
7164
{
72-
icon: LogoPython,
73-
content: (
74-
<>
75-
<strong>Python and TypeScript support</strong> with complete feature parity.
76-
</>
77-
),
65+
icon: InsertPage,
66+
title: 'Modular by design',
67+
content:
68+
'Composable modules with stable interfaces give you a testable and maintainable foundation for production-grade AI.',
7869
},
7970
{
80-
icon: Unlocked,
81-
content: (
82-
<>
83-
<strong>No vendor lock-in</strong> - works with 10+ LLM providers, out-of-the-box.
84-
</>
85-
),
71+
icon: Plug,
72+
title: 'Pluggable observability',
73+
content:
74+
'Integrate with your existing stack in minutes with native OpenTelemetry support for auditing and monitoring.',
8675
},
8776
{
88-
icon: SettingsAdjust,
89-
content: (
90-
<>
91-
<strong>Complete control over agent behavior</strong>, performance optimization, and resource allocation.
92-
</>
93-
),
77+
icon: LogoPython,
78+
title: 'Dual-language support',
79+
content:
80+
'Feature parity between the Python and TypeScript lets teams build with the tools they already know and love.',
9481
},
9582
{
96-
icon: Plug,
97-
content: (
98-
<>
99-
<strong>Existing stack integration</strong> with MCP compatibility, custom tool development support, and
100-
seamless tool integration.
101-
</>
102-
),
83+
icon: Shapes,
84+
title: 'Protocol native',
85+
content:
86+
'Build MCP-compatible components, equip agents with MCP tools, and interoperate with any MCP or A2A agent.',
10387
},
10488
];

apps/beeai-web/src/modules/home/Introduction.module.scss

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
.root {
77
display: flex;
88
flex-direction: column;
9-
margin-block-start: rem(103px);
9+
padding-block: rem(104px);
1010
}
1111

1212
.headline {
@@ -23,30 +23,7 @@
2323
}
2424
}
2525

26-
.info {
27-
margin-block-start: rem(105px);
28-
background-color: $green-10;
29-
color: $black;
30-
padding-block: $spacing-08;
31-
}
32-
.infoContent {
33-
grid-column: 3 / -3;
34-
p {
35-
font-size: rem(20px);
36-
line-height: math.div(28, 20);
37-
max-inline-size: rem(845px);
38-
39-
a {
40-
font-weight: 600;
41-
color: $black;
42-
}
43-
}
44-
}
45-
4626
@include breakpoint-down(md) {
47-
.infoContent {
48-
grid-column: 2 / -2;
49-
}
5027
.headline h1 {
5128
font-size: clamp(rem(48px), 13vw, rem(80px));
5229
}

apps/beeai-web/src/modules/home/Introduction.tsx

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,16 @@ import classes from './Introduction.module.scss';
1212

1313
export function Introduction() {
1414
return (
15-
<>
16-
<LayoutContainer>
17-
<section className={classes.root}>
18-
<div className={classes.headline}>
19-
<h1>
20-
<LogoBeeAI /> the enterprise AI agent development, simplified.
21-
</h1>
22-
<GitHubButton />
23-
</div>
24-
</section>
25-
</LayoutContainer>
26-
<section className={classes.info}>
27-
<LayoutContainer asGrid>
28-
<div className={classes.infoContent}>
29-
<p>
30-
BeeAI provides two complementary open- source components for Enterprise Developers: a&nbsp;
31-
<a href="#framework">framework</a> for building reliable AI agents and a <a href="#platform">platform</a>{' '}
32-
for creating shareable interfaces.
33-
</p>
34-
</div>
35-
</LayoutContainer>
15+
<LayoutContainer>
16+
<section className={classes.root}>
17+
<div className={classes.headline}>
18+
<h1>
19+
<LogoBeeAI /> <br />
20+
control and agency without compromise
21+
</h1>
22+
<GitHubButton />
23+
</div>
3624
</section>
37-
</>
25+
</LayoutContainer>
3826
);
3927
}

apps/beeai-web/src/modules/home/Platform.tsx

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
*/
55

66
'use client';
7-
import { LogoPython, Rocket, SettingsAdjust, Unlocked } from '@carbon/icons-react';
7+
import { Deploy, Gui, Unlocked } from '@carbon/icons-react';
88
import Image from 'next/image';
99

1010
import { PLATFORM_QUICKSTART_LINK } from '@/constants';
1111
import { LayoutContainer } from '@/layouts/LayoutContainer';
1212

13+
import InterfaceUsageAlt from './assets/interface-usage-alt.svg';
1314
import screenshotsImage from './assets/platform.png';
15+
import type { FeatureItem } from './components/FeaturesList';
1416
import { FeaturesList } from './components/FeaturesList';
1517
import { HeadlineWithLink } from './components/HeadlineWithLink';
1618
import { TwoColumnGrid } from './components/TwoColumnGrid';
@@ -23,8 +25,8 @@ export function Platform() {
2325
<TwoColumnGrid className={classes.info}>
2426
<div className={classes.infoLeft}>
2527
<HeadlineWithLink
26-
title="Platform"
27-
description="Deploy any AI agent with a custom web interface in minutes."
28+
title="beeai-platform"
29+
description="Test, debug, and share your agents in an interactive UI with out-of-the-box trajectory, citations, and more."
2830
buttonProps={{ url: PLATFORM_QUICKSTART_LINK }}
2931
/>
3032
</div>
@@ -42,37 +44,29 @@ export function Platform() {
4244
);
4345
}
4446

45-
const FEATURES_ITEMS = [
47+
const FEATURES_ITEMS: FeatureItem[] = [
4648
{
47-
icon: Rocket,
48-
content: (
49-
<>
50-
<strong>Create front-end interfaces</strong> for your Agents without a front-end developer skillset.
51-
</>
52-
),
49+
icon: Gui,
50+
title: 'Instant agent UI',
51+
content:
52+
"Generate a shareable front-end from your code in minutes. Focus on your agent's logic, not UI frameworks.",
5353
},
5454
{
55-
icon: LogoPython,
56-
content: (
57-
<>
58-
<strong>Deploy agents from any framework</strong> — BeeAI, Langchain, CrewAI, or custom implementations.
59-
</>
60-
),
55+
icon: InterfaceUsageAlt,
56+
title: 'Effortless deployment',
57+
content:
58+
'Go from container to production-ready. We handle database, storage, scaling, and RAG so you can focus on your agent.',
6159
},
6260
{
6361
icon: Unlocked,
64-
content: (
65-
<>
66-
<strong>Test agents with 10+ LLM providers</strong> including OpenAI, Anthropic, Google Gemini, and IBM watsonx.
67-
</>
68-
),
62+
title: 'Multi-provider playground',
63+
content:
64+
'Test across OpenAI, Anthropic, Gemini, IBM watsonx, Ollama and more. Instantly compare performance and cost to find the optimal model.',
6965
},
7066
{
71-
icon: SettingsAdjust,
72-
content: (
73-
<>
74-
<strong>Enable agent interpretability</strong> by using A2A and the BeeAI SDK under the hood.
75-
</>
76-
),
67+
icon: Deploy,
68+
title: 'Framework-agnostic',
69+
content:
70+
'Run agents from LangChain, CrewAI, BeeAI and more on a single platform. Enable cross-framework collaboration without rewriting your code.',
7771
},
7872
];
Lines changed: 11 additions & 0 deletions
Loading

apps/beeai-web/src/modules/home/components/FeaturesList.module.scss

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
display: flex;
99
flex-direction: column;
1010
gap: $spacing-04;
11+
font-size: rem(20px);
12+
line-height: math.div(26, 20);
13+
text-wrap: pretty;
14+
max-inline-size: rem(369px);
1115

1216
svg {
1317
block-size: rem(40px);
@@ -16,15 +20,14 @@
1620
fill: currentColor;
1721
}
1822
}
19-
span {
20-
font-size: rem(20px);
21-
line-height: math.div(26, 20);
22-
text-wrap: pretty;
23-
max-inline-size: rem(369px);
24-
}
2523
}
2624
}
2725

26+
.content {
27+
display: flex;
28+
flex-direction: column;
29+
}
30+
2831
@include breakpoint-down(md) {
2932
.root {
3033
li span {

apps/beeai-web/src/modules/home/components/FeaturesList.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
*/
55

66
import clsx from 'clsx';
7-
import type { ComponentType, PropsWithChildren, ReactNode } from 'react';
7+
import type { ComponentType, PropsWithChildren } from 'react';
88

99
import classes from './FeaturesList.module.scss';
1010
import { TwoColumnGrid } from './TwoColumnGrid';
1111

12-
interface FeatureItem {
12+
export interface FeatureItem {
1313
icon: ComponentType;
14-
content: ReactNode;
14+
title: string;
15+
content: string;
1516
}
1617

1718
interface Props {
@@ -22,10 +23,13 @@ interface Props {
2223
export function FeaturesList({ className, items }: PropsWithChildren<Props>) {
2324
return (
2425
<TwoColumnGrid className={clsx(classes.root, className)} as="ul">
25-
{items.map(({ icon: Icon, content }, idx) => (
26+
{items.map(({ icon: Icon, title, content }, idx) => (
2627
<li key={idx}>
2728
<Icon />
28-
<span>{content}</span>
29+
<div className={classes.content}>
30+
<strong>{title}</strong>
31+
<span>{content}</span>
32+
</div>
2933
</li>
3034
))}
3135
</TwoColumnGrid>

apps/beeai-web/src/modules/home/components/GitHubButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export function GitHubButton() {
2121
className={classes.root}
2222
renderIcon={LogoGithub}
2323
>
24-
Hack with us on GitHub
24+
Get started on GitHub
2525
</Button>
2626
);
2727
}

0 commit comments

Comments
 (0)