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: +

+
+ alan + watershed + qonto + pennylane + payfit + watershed + hivebrite + blueground +
+
+ + ); +} 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: -

-
- alan - qonto - pennylane - payfit - watershed -
-
+ + +
+ 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: +

+
+
+ + + + + Blog Image + + + + + Blog Image + + + + + Blog Image + + + + +
+
+ + ); +} + +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