diff --git a/front/components/home/ContentBlocks.tsx b/front/components/home/ContentBlocks.tsx
index 0446ec212a81..ea3cdd66a937 100644
--- a/front/components/home/ContentBlocks.tsx
+++ b/front/components/home/ContentBlocks.tsx
@@ -1,4 +1,4 @@
-import { ArrowRightIcon, Button, RocketIcon } from "@dust-tt/sparkle";
+import { ArrowRightIcon, Avatar, Button, RocketIcon } from "@dust-tt/sparkle";
import Link from "next/link";
import type { ReactNode } from "react";
import React from "react";
@@ -171,6 +171,67 @@ export const HeaderContentBlock = ({
);
+interface MetricComponentProps {
+ metrics: {
+ value: string;
+ description: ReactNode;
+ }[];
+ from: string;
+ to: string;
+}
+
+export const MetricComponent = ({
+ metrics,
+ from,
+ to,
+}: MetricComponentProps) => (
+
+
+ {metrics.map((metric, index) => (
+
+
+ {metric.value}
+
+
+ {metric.description}
+
+
+ ))}
+
+
+);
+
+interface QuoteProps {
+ quote: string;
+}
+
+export const Quote = ({ quote }: QuoteProps) => (
+
+
+ “ {quote} ”
+
+
+
+
+
+ Walter Moniot,
+
+ CPO at Malt
+
+
+
+
+);
+
interface CarousselContentBlockProps {
title: ReactNode;
subtitle?: ReactNode;
diff --git a/front/components/home/SolutionSection.tsx b/front/components/home/SolutionSection.tsx
index 63273eb92e33..042304da38b7 100644
--- a/front/components/home/SolutionSection.tsx
+++ b/front/components/home/SolutionSection.tsx
@@ -107,6 +107,7 @@ const renderSolutionSectionBlock = ({
);
};
+
interface SolutionSectionContentBlockProps {
title: ReactNode;
content: ReactNode | ReactNode[];
diff --git a/front/components/home/TrustedBy.tsx b/front/components/home/TrustedBy.tsx
new file mode 100644
index 000000000000..49feee3a23fb
--- /dev/null
+++ b/front/components/home/TrustedBy.tsx
@@ -0,0 +1,79 @@
+import Image from "next/image";
+
+import { H3 } from "@app/components/home/ContentComponents";
+import { classNames } from "@app/lib/utils";
+
+export default function TrustedBy() {
+ return (
+ <>
+
+
+ Trusted by 500+ organizations, including:
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/front/components/home/content/Product/IntroSection.tsx b/front/components/home/content/Product/IntroSection.tsx
index 9557414ca02e..0c1e25566319 100644
--- a/front/components/home/content/Product/IntroSection.tsx
+++ b/front/components/home/content/Product/IntroSection.tsx
@@ -9,15 +9,11 @@ import {
import Link from "next/link";
import React, { useEffect, useState } from "react";
-import {
- Grid,
- H1,
- H4,
- P,
- Strong,
-} from "@app/components/home/ContentComponents";
+import { Grid, H1, P, Strong } from "@app/components/home/ContentComponents";
import { classNames } from "@app/lib/utils";
+import TrustedBy from "../../TrustedBy";
+
const ResponsiveIframe = () => {
return (
@@ -156,30 +152,9 @@ export function IntroSection() {
>
{MainVisualImage()}
-
-
- Trusted by 500+ organizations, including:
-
-
-
+
+
+
+ Instant knowledge,
+
+ exceptional support.
+ >
+ ),
+ from: "from-sky-200",
+ to: "to-sky-500",
+ description: (
+ <>
+ Dust brings all your tools and company knowledge at
+ your fingertips for endless possibilities.
+ >
+ ),
+};
+
+export default function CustomerSupport() {
+ return (
+ <>
+
+
+
+ {/*
+
+ Resolve
+
+ faster.
+ >
+ }
+ content={
+ <>
+ Surface relevant information from all connected knowledge bases
+ instantly and understand messages in 50+ languages.
+ >
+ }
+ >
+
+
+
+ Boost
+
+ Team Productivity.
+ >
+ }
+ content={
+ <>
+ Keep teams synchronized with real-time access to information
+ across all communication channels and reduce onboarding times.
+ >
+ }
+ >
+
+
+
+ Understand
+ customer needs.
+ >
+ }
+ content={
+ <>
+ Gain insights from coss-tool interactions to undertstand and act
+ on customer needs, improve documentation.
+ >
+ }
+ >
+
+
+
*/}
+
+
+
+
+ Responses generated 15x faster
+ after implementing Dust
+ >
+ ),
+ },
+ {
+ value: "8h",
+ description: (
+ <>
+ Save 8 hours per agent per week on average
+ >
+ ),
+ },
+ ]}
+ from="from-amber-200"
+ to="to-amber-500"
+ />
+
+ Resolve faster.>,
+ content: [
+ <>
+ Surface relevant information from all connected knowledge
+ bases instantly and understand messages in 50+ languages.
+ >,
+ ],
+ },
+ {
+ title: <>Boost team productivity.>,
+ content: [
+ <>
+ Keep teams synchronized with real-time access to
+ information across all communication channels and reduce
+ onboarding times.
+ >,
+ ],
+ },
+ {
+ title: <>Understand customer needs.>,
+ content: [
+ <>
+ Gain insights from coss-tool interactions to undertstand
+ and act on customer needs, improve documentation.
+ >,
+ ],
+ },
+ ],
+ assistantBlocks: [
+ assistantExamples[0],
+ assistantExamples[1],
+ assistantExamples[2],
+ assistantExamples[3],
+ ],
+ },
+ ]}
+ />
+
+
+
+
+
+ How Dust boosts support teams at:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+const assistantExamples: SolutionSectionAssistantBlockProps[] = [
+ {
+ emoji: "🖋️",
+ name: "Ticket Resolution",
+ backgroundColor: "bg-sky-300",
+ description: (
+ <>Smart answer suggestions and contextual knowledge at your fingertips.>
+ ),
+ },
+ {
+ emoji: "🔎",
+ name: "Agent Coaching",
+ backgroundColor: "bg-sky-300",
+ description: (
+ <>
+ Helps new support agents learn bst practices and company knowledge
+ faster.
+ >
+ ),
+ },
+ {
+ emoji: "đź“ž",
+ name: "Documentation Builder",
+ backgroundColor: "bg-sky-300",
+ description: (
+ <>
+ Converts resolved support tickets into searchable knowledge base
+ articles and FAQ.
+ >
+ ),
+ },
+ {
+ emoji: "đź“Š",
+ name: "Customer Voice",
+ backgroundColor: "bg-sky-300",
+ description: (
+ <>Turn customer feedback from every channel into actionable insights.>
+ ),
+ },
+];
+
+CustomerSupport.getLayout = (
+ page: ReactElement,
+ pageProps: LandingLayoutProps
+) => {
+ return
{page};
+};
diff --git a/front/public/static/landing/logos/alan.png b/front/public/static/landing/logos/alan.png
index 644e8443918d..073f77a7cbc9 100644
Binary files a/front/public/static/landing/logos/alan.png and b/front/public/static/landing/logos/alan.png differ
diff --git a/front/public/static/landing/logos/blueground.png b/front/public/static/landing/logos/blueground.png
new file mode 100644
index 000000000000..01d405c017ef
Binary files /dev/null and b/front/public/static/landing/logos/blueground.png differ
diff --git a/front/public/static/landing/logos/hivebrite.png b/front/public/static/landing/logos/hivebrite.png
new file mode 100644
index 000000000000..f18ec4c2393e
Binary files /dev/null and b/front/public/static/landing/logos/hivebrite.png differ
diff --git a/front/public/static/landing/logos/kyriba.png b/front/public/static/landing/logos/kyriba.png
new file mode 100644
index 000000000000..1ae84f22038d
Binary files /dev/null and b/front/public/static/landing/logos/kyriba.png differ
diff --git a/front/public/static/landing/logos/malt.png b/front/public/static/landing/logos/malt.png
new file mode 100644
index 000000000000..da2f03a125c5
Binary files /dev/null and b/front/public/static/landing/logos/malt.png differ
diff --git a/front/public/static/landing/logos/payfit.png b/front/public/static/landing/logos/payfit.png
index d055258d1c3c..792a012851c5 100644
Binary files a/front/public/static/landing/logos/payfit.png and b/front/public/static/landing/logos/payfit.png differ
diff --git a/front/public/static/landing/logos/pennylane.png b/front/public/static/landing/logos/pennylane.png
index 4c069988c83f..8efce6e7d41e 100644
Binary files a/front/public/static/landing/logos/pennylane.png and b/front/public/static/landing/logos/pennylane.png differ
diff --git a/front/public/static/landing/logos/qonto.png b/front/public/static/landing/logos/qonto.png
index 1c9bbec6087a..3d1e645093c8 100644
Binary files a/front/public/static/landing/logos/qonto.png and b/front/public/static/landing/logos/qonto.png differ
diff --git a/front/public/static/landing/logos/watershed.png b/front/public/static/landing/logos/watershed.png
index 56bda93e1611..65d34ba280b4 100644
Binary files a/front/public/static/landing/logos/watershed.png and b/front/public/static/landing/logos/watershed.png differ