From 2cb83a1cd52e596db9c74e859fd050a54dc85a33 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 3 Sep 2025 22:12:24 -0500 Subject: [PATCH] Website: Update homepage hero & content (#32570) Closes: https://github.com/fleetdm/confidential/issues/12074 Closes: https://github.com/fleetdm/confidential/issues/12018 Changes: - Updated the homepage hero to have a quote from Wes Whetstone - Updated the homepage layout to match the latest wireframes --- .../controllers/view-homepage-or-redirect.js | 48 +++- .../homepage-hero-wes-whetstone-86x72@2x.png | Bin 0 -> 25224 bytes website/assets/styles/pages/homepage.less | 198 +++++++++-------- website/views/pages/homepage.ejs | 206 +++++------------- 4 files changed, 200 insertions(+), 252 deletions(-) create mode 100644 website/assets/images/homepage-hero-wes-whetstone-86x72@2x.png diff --git a/website/api/controllers/view-homepage-or-redirect.js b/website/api/controllers/view-homepage-or-redirect.js index 4db3a40640..f02459cb32 100644 --- a/website/api/controllers/view-homepage-or-redirect.js +++ b/website/api/controllers/view-homepage-or-redirect.js @@ -20,12 +20,58 @@ module.exports = { description: 'Requesting user is logged in, so redirect to the internal welcome page.' }, + badConfig: { + responseType: 'badConfig' + }, + }, fn: async function () { - return {}; + if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.testimonials) || !sails.config.builtStaticContent.compiledPagePartialsAppPath) { + throw {badConfig: 'builtStaticContent.testimonials'}; + } + // Get testimonials for the component. + let testimonialsForScrollableTweets = _.clone(sails.config.builtStaticContent.testimonials); + + // Specify an order for the testimonials on this page using the last names of quote authors + let testimonialOrderForThisPage = [ + 'Bart Reardon', + 'Scott MacVicar', + 'Mike Meyer', + 'Luis Madrigal', + 'Tom Larkin', + 'Kenny Botelho', + 'Erik Gomez', + 'Chandra Majumdar', + 'Eric Tan', + 'Matt Carr', + 'Nico Waisman', + 'Dan Grzelak', + 'Philip Chotipradit', + 'Roger Cantrell', + 'Chayce O\'Neal' + ]; + + // Filter the testimonials by product category + testimonialsForScrollableTweets = _.filter(testimonialsForScrollableTweets, (testimonial)=>{ + return _.contains(testimonial.productCategories, 'Device management') && _.contains(testimonialOrderForThisPage, testimonial.quoteAuthorName); + }); + + testimonialsForScrollableTweets.sort((a, b)=>{ + if(testimonialOrderForThisPage.indexOf(a.quoteAuthorName) === -1){ + return 1; + } else if(testimonialOrderForThisPage.indexOf(b.quoteAuthorName) === -1) { + return -1; + } + return testimonialOrderForThisPage.indexOf(a.quoteAuthorName) - testimonialOrderForThisPage.indexOf(b.quoteAuthorName); + }); + + + return { + testimonialsForScrollableTweets + }; } diff --git a/website/assets/images/homepage-hero-wes-whetstone-86x72@2x.png b/website/assets/images/homepage-hero-wes-whetstone-86x72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae9ea04560d241b2c08eb9308c4471ad713e38f GIT binary patch literal 25224 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 TePnO|00000NkvXXu0mjfMA^+B literal 0 HcmV?d00001 diff --git a/website/assets/styles/pages/homepage.less b/website/assets/styles/pages/homepage.less index 920618f036..58b53d8380 100644 --- a/website/assets/styles/pages/homepage.less +++ b/website/assets/styles/pages/homepage.less @@ -21,7 +21,7 @@ text-transform: uppercase; font-family: 'Roboto Mono'; font-weight: 400; - font-size: 14px; + font-size: 16px; line-height: 120%; color: @core-fleet-black-75; margin-bottom: 8px; @@ -48,11 +48,11 @@ } [purpose='homepage-hero'] { - padding-top: 120px; + padding-top: 64px; padding-left: 64px; padding-bottom: 120px; max-width: 1200px; - height: 498px; + height: 448px; } [purpose='ticker-container'] { overflow: hidden; @@ -82,12 +82,21 @@ } } [purpose='hero-text'] { - max-width: 474px; + max-width: 500px; text-align: left; h1 { max-width: 640px; margin-bottom: 16px; } + h4 { + color: #515774; + font-feature-settings: 'salt' on, 'ss01' on, 'ss02' on; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + text-transform: uppercase; + } p { max-width: 412px; margin-bottom: 32px; @@ -99,6 +108,43 @@ } } + [purpose='hero-quote-author'] { + margin-top: 24px; + margin-bottom: 32px; + [purpose='hero-quote-profile-image'] { + margin-right: 16px; + img { + height: 72px; + } + } + [purpose='quote-author-info'] { + [purpose='quote-author-name'] { + color: var(--text-text-brand, #192147); + + /* Body XS (bold) */ + font-family: Inter; + font-size: 12px; + font-style: normal; + font-weight: 700; + line-height: 18px; /* 150% */ + margin-bottom: 0px; + } + [purpose='quote-author-title'] { + color: var(--text-text-primary, #515774); + font-family: Inter; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 18px; + margin-bottom: 0px; + } + + + + } + + } + [purpose='button-row'] { display: flex; flex-direction: row; @@ -116,7 +162,7 @@ border-radius: 8px; padding-left: 32px; padding-right: 32px; - height: 40px; + height: 44px; display: flex; justify-content: center; align-items: center; @@ -147,7 +193,7 @@ padding-left: 60px; padding-right: 60px; margin-top: 24px; - margin-bottom: 120px; + margin-bottom: 64px; [parasails-component='logo-carousel'] { margin-bottom: 0px; } @@ -293,7 +339,7 @@ flex-direction: row; justify-content: center; align-items: center; - margin-bottom: 128px; + margin-bottom: 160px; [purpose='feature-image'] { img { width: 578px; @@ -337,7 +383,7 @@ flex-direction: row; justify-content: center; margin-top: 48px; - margin-bottom: 48px; + margin-bottom: 120px; text-decoration: none; h4 { color: #192147; @@ -389,65 +435,18 @@ align-items: center; } } - - [purpose='quote'] { - max-width: 580px; - margin-left: auto; - margin-right: auto; - padding-bottom: 80px; - padding-top: 32px; + [purpose='testimonials-header'] { + margin-top: 80px; text-align: center; - text-decoration: none; } - [purpose='quote-logo'] { - height: 32px; - // margin-bottom: 16px; - margin-left: auto; - margin-right: auto; - - } - [purpose='quote-text'] { - color: @core-fleet-black-75; - text-align: center; - font-size: 18px; - font-style: italic; - font-weight: 400; - line-height: 150%; - margin-bottom: 0px; - padding: 24px 0px; - } - [purpose='quote-attribution'] { - display: flex; - flex-direction: column; - align-items: center; - [purpose='quote-author-image'] { - height: 48px; - margin-bottom: 16px; - border-radius: 50%; - } - [purpose='name'] { - color: @core-fleet-black-75; - text-align: center; - font-size: 12px; - font-weight: 700; - line-height: 150%; - margin-bottom: 0px; - } - [purpose='job-title'] { - color: @core-fleet-black-75; - margin-bottom: 0px; - font-size: 12px; - font-weight: 400; - line-height: 150%; + [parasails-component='scrollable-tweets'] { + [purpose='tweets'] { + margin-top: 40px; } } - - - - [purpose='comparison-section'] { padding-bottom: 80px; @@ -927,8 +926,8 @@ } [purpose='homepage-hero'] { max-width: 100%; - padding-top: 80px; - padding-bottom: 80px; + padding-top: 64px; + padding-bottom: 32px; height: 418px; } [purpose='hero-background-image'] { @@ -1114,13 +1113,41 @@ } [purpose='hero-logos'] { + margin-bottom: 64px; + } + [purpose='statistics'] { margin-bottom: 80px; + [purpose='statistics-column'] { + display: flex; + flex-direction: column; + width: 227px; + } + [purpose='countries'] { + border-right: none; + padding: 16px 32px; + + } + [purpose='customers'] { + padding: 16px 32px; + } + [purpose='devices'] { + padding: 16px 32px; + } + [purpose='response-time'] { + padding: 16px 32px; + } + } [purpose='hero-text'] { min-width: unset; p { max-width: 465px; } + [purpose='button-row'] { + [purpose='cta-button'] { + width: 45%; + } + } } [purpose='page-section'] { margin-bottom: 80px; @@ -1154,36 +1181,6 @@ } } - [purpose='quote'] { - padding-bottom: 32px; - } - - - [purpose='statistics'] { - [purpose='statistics-column'] { - display: flex; - flex-direction: column; - width: 227px; - } - [purpose='countries'] { - border-right: none; - padding: 16px 32px; - - } - [purpose='customers'] { - padding: 16px 32px; - } - [purpose='devices'] { - padding: 16px 32px; - } - [purpose='response-time'] { - padding: 16px 32px; - } - - } - - - [purpose='three-column-features'] { margin-bottom: 120px; } @@ -1289,9 +1286,6 @@ h1 { font-size: 32px; } - h4 { - font-size: 14px; - } [purpose='option-container'] { height: 38.4px; } @@ -1317,6 +1311,11 @@ [purpose='hero-text'] { width: 100%; max-width: 100%; + [purpose='button-row'] { + [purpose='cta-button'] { + width: unset; + } + } } [purpose='feature-with-image'] { flex-direction: column; @@ -1469,9 +1468,9 @@ font-size: 28px; line-height: 120%; } - h4 { - font-size: 12px; - } + // h4 { + // font-size: 12px; + // } [purpose='announcement-banner'] { br { display: block; @@ -1490,8 +1489,7 @@ padding-top: 44px; padding-left: 16px; padding-right: 17px; - padding-bottom: 187px; - height: 520px; + padding-bottom: 217px; [purpose='option-container'] { height: 33.6px; } diff --git a/website/views/pages/homepage.ejs b/website/views/pages/homepage.ejs index ca2203b161..3009140129 100644 --- a/website/views/pages/homepage.ejs +++ b/website/views/pages/homepage.ejs @@ -6,37 +6,19 @@
<%/* Hero text */%>
-

One agent for
-
- every -
- OS - audit - script - config - question - laptop - desktop - phone - server - cloud instance - container - tablet - hospital - factory - report - new hire - offboard - employee - agent - robot - satellite - telescope - computer -
-
+

Open device management

+

“I just moved 13,000
Macs to Fleet” +

-

Replace the sprawl with lightning fast device management that puts you back in control.

+
+
+ Wes Whetstone +
+
+

Wes Whetstone

+

Client Platform Engineer at Stripe

+
+
Get a demo PlaySee Fleet in action3 mins @@ -50,83 +32,39 @@
+ +
+
+

100+

+

customers

+
+
+

90+

+

countries

+
+
+

2,000,000+

+

computing devices

+
+
+
+
+

90+

+

countries

+
+
+

100+

+

customers

+
+
+

8 minutes

+

avg support response time

+
+
+
<%/* Homepage content */%>
-
-
-

Everything in one place

-

Manage devices consistently in a single, open platform for Apple, Linux, and Windows.

-
- - - +

Freedom at every level

Manage devices your way, without vendor limits. Fleet gives you full control and supports the choices that work for your organization.

@@ -138,8 +76,8 @@
-
All features, any deployment
-

Let us host Fleet for you or deploy it yourself. You get the same experience either way.

+
All features, flexible deployment
+

Unlike other solutions, you can let us host Fleet for you or deploy it yourself. You get the same experience either way.

UI, API, or GitOps
@@ -153,52 +91,18 @@
- -
-
-

100+

-

customers

-
-
-

90+

-

countries

-
-
-

2,000,000+

-

computing devices

-
-
-
-
-

90+

-

countries

-
-
-

100+

-

customers

-
-
-

8 minutes

-

avg support response time

-
-
-
- - - Stripe logo -

- Fleet helped us avoid being forced to the cloud by our current MDM provider. We were able to migrate everything over to Fleet a few weeks ahead of our renewal, and now Stripe is in control. -

-
- Scott MacVicar -

Scott MacVicar

-

Head of Developer Infrastructure and Corporate Technology

-
-
+
+

What people are saying

+
+
+
+ +
+
-

How does Fleet compare?

-

Considering a move to Fleet? See how we compare:

+

Moving to Fleet?

+

See how Fleet compares with your other options.

IT
Security