From 51c59e59b88cf92c1b73cca9e7b67bdb3258f623 Mon Sep 17 00:00:00 2001 From: Eric Date: Thu, 4 Apr 2024 22:57:45 -0500 Subject: [PATCH] Website: update personalization (#18075) Changes: - updated the custom hook to support clearing the `primaryBuyingSituation` with a query string (`?utm_content=clear`) - Updated the pricing page to pre-select a pricing table mode based on a user's `primaryBuyingSituation` - reordered content on and updated the /support page to personalize/hide community slack links based on a user's `primaryBuyingSituation` - Updated the meta description of the product category landing pages - updated personalization based on `primaryBuyingSituation` on the /contact page. - Updated the title of the /queries page based on the user's `primaryBuyingSituation` - Added personalization to the product category landing pages. --- website/api/hooks/custom/index.js | 4 +- website/assets/js/pages/pricing.page.js | 8 +- website/assets/styles/pages/support.less | 8 +- website/config/routes.js | 10 +-- website/views/pages/contact.ejs | 10 ++- website/views/pages/device-management.ejs | 2 +- website/views/pages/endpoint-ops.ejs | 2 +- website/views/pages/query-library.ejs | 5 +- website/views/pages/support.ejs | 86 ++++++++++--------- .../views/pages/vulnerability-management.ejs | 2 +- 10 files changed, 76 insertions(+), 61 deletions(-) diff --git a/website/api/hooks/custom/index.js b/website/api/hooks/custom/index.js index fb774908a4..b4998f3a23 100644 --- a/website/api/hooks/custom/index.js +++ b/website/api/hooks/custom/index.js @@ -156,6 +156,9 @@ will be disabled and/or hidden in the UI. // FUTURE: Auto-redirect without the querystring after absorbtion to make it prettier in the URL bar. // (except this probably messes up analytics so before doing that, figure out how to solve that problem) }//fi + if(req.param('utm_content') === 'clear'){ + req.session.primaryBuyingSituation = undefined; + } if (req.method === 'GET' || req.method === 'HEAD') { // Include information about the primary buying situation // If set in the session (e.g. from an ad), use the primary buying situation for personalization. @@ -279,7 +282,6 @@ will be disabled and/or hidden in the UI. // Include information about the primary buying situation // If set in the session (e.g. from an ad), use the primary buying situation for personalization. res.locals.primaryBuyingSituation = req.session.primaryBuyingSituation || undefined; - }//fi return next(); diff --git a/website/assets/js/pages/pricing.page.js b/website/assets/js/pages/pricing.page.js index 6c2c678a17..69b6ba3e74 100644 --- a/website/assets/js/pages/pricing.page.js +++ b/website/assets/js/pages/pricing.page.js @@ -12,7 +12,13 @@ parasails.registerPage('pricing', { // ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣ // ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝ beforeMount: function() { - //… + if(this.primaryBuyingSituation){ + if(['eo-security', 'vm'].includes(this.primaryBuyingSituation)){ + this.pricingMode = 'Security'; + } else { + this.pricingMode = 'IT'; + } + } }, mounted: async function(){ // Tooltips for desktop users are opened by a user hovering their cursor over them. diff --git a/website/assets/styles/pages/support.less b/website/assets/styles/pages/support.less index 37787cf9d5..5664f561a0 100644 --- a/website/assets/styles/pages/support.less +++ b/website/assets/styles/pages/support.less @@ -73,6 +73,7 @@ [purpose='community-cards'] { + margin-bottom: 30px; [purpose='support-card'] { width: 100%; height: 200px; @@ -91,7 +92,7 @@ width: 50%; } - margin-bottom: 30px; + } @media (min-width: 1201px) { @@ -104,7 +105,6 @@ [purpose='support-cards'] { flex-direction: row; - margin-bottom: 50px; max-width: 1120px; [purpose='support-row'] { flex-direction: row; @@ -119,6 +119,7 @@ } [purpose='community-cards'] { + margin-bottom: 50px; [purpose='support-card'] { width: 384px; height: 178px; @@ -151,9 +152,6 @@ } } @media (max-width: 991px) { - [purpose='support-card'] { - margin-bottom: 30px; - } [purpose='support-cards'] { [purpose='support-card'] { height: 221px; diff --git a/website/config/routes.js b/website/config/routes.js index 12e13b3a7d..6143564328 100644 --- a/website/config/routes.js +++ b/website/config/routes.js @@ -238,7 +238,7 @@ module.exports.routes = { action: 'view-device-management', locals: { pageTitleForMeta: 'Device management (MDM) | Fleet', - pageDescriptionForMeta: 'Configure your devices with sensible defaults, or customize MDM features exactly how you want. Manage your IT infrastructure in any browser or use git to make changes as code.', + pageDescriptionForMeta: 'Manage your devices in any browser or use git to make changes as code.', currentSection: 'platform', } }, @@ -247,7 +247,7 @@ module.exports.routes = { action: 'view-endpoint-ops', locals: { pageTitleForMeta: 'Endpoint ops | Fleet', - pageDescriptionForMeta: 'Simplify your security tooling, ship data to any platform, and pulse check anything with Fleet.', + pageDescriptionForMeta: 'Pulse check anything, build reports, and ship data to any platform with Fleet.', } }, @@ -255,7 +255,7 @@ module.exports.routes = { action: 'view-vulnerability-management', locals: { pageTitleForMeta: 'Vulnerability management | Fleet', - pageDescriptionForMeta: 'Instant, lightweight visibility down to the chipset of any endpoint. Consolidate your security stack and build the vulnerability program you actually want with Fleet.', + pageDescriptionForMeta: 'Report CVEs, software inventory, security posture, and other risks down to the chipset of any endpoint with Fleet.', } }, @@ -263,7 +263,7 @@ module.exports.routes = { action: 'view-support', locals: { pageTitleForMeta: 'Support | Fleet', - pageDescriptionForMeta: 'Ask a question, chat with other engineers, or get in touch with the Fleet team.', + pageDescriptionForMeta: 'Ask a question, chat with engineers, or get in touch with the Fleet team.', currentSection: 'documentation', } }, @@ -283,7 +283,7 @@ module.exports.routes = { hideFooterLinks: true, hideGetStartedButton: true, pageTitleForMeta: 'Start | Fleet', - pageDescriptionForMeta: 'Get Started with Fleet. Spin up a local demo or get your premium license key.', + pageDescriptionForMeta: 'Get Started with Fleet. Spin up a local demo or get your Premium license key.', } }, diff --git a/website/views/pages/contact.ejs b/website/views/pages/contact.ejs index 0982fc06eb..d446ef3e12 100644 --- a/website/views/pages/contact.ejs +++ b/website/views/pages/contact.ejs @@ -79,8 +79,8 @@
@@ -90,7 +90,11 @@
-

Includes computers, servers, containers, and other hosts.

+

Includes computers, servers, containers, and other hosts.

+

Includes servers, containers, workstations, and other hosts.

+

Includes macOS, Windows, Linux workstations, Chromebooks, servers, and other hosts.

+

Includes computers, servers, OT/ICS, containers, and other hosts.

+

Includes macOS, Windows, and most flavors of Linux.

Please enter a number of <%= primaryBuyingSituation === 'mdm' ? 'devices' : 'hosts' %>
diff --git a/website/views/pages/device-management.ejs b/website/views/pages/device-management.ejs index ce16776c7c..b0529e7bb1 100644 --- a/website/views/pages/device-management.ejs +++ b/website/views/pages/device-management.ejs @@ -195,7 +195,7 @@

Who else uses Fleet?

-

Empowering security and IT teams, globally

+

Empowering <%= ['vm', 'eo-security'].includes(primaryBuyingSituation) ? 'security and IT' : 'IT' %> teams, globally

diff --git a/website/views/pages/endpoint-ops.ejs b/website/views/pages/endpoint-ops.ejs index 6afe981f52..875048fb54 100644 --- a/website/views/pages/endpoint-ops.ejs +++ b/website/views/pages/endpoint-ops.ejs @@ -192,7 +192,7 @@

Who else uses Fleet?

-

Empowering security and IT teams, globally

+

Empowering <%= ['mdm', 'eo-it'].includes(primaryBuyingSituation) ? 'IT and security' : 'security and IT' %> teams, globally

diff --git a/website/views/pages/query-library.ejs b/website/views/pages/query-library.ejs index 11af02cb80..59172d0798 100644 --- a/website/views/pages/query-library.ejs +++ b/website/views/pages/query-library.ejs @@ -2,7 +2,10 @@
-

Device health checks

+

+ <%= ['eo-it', 'mdm'].includes(primaryBuyingSituation) ? 'Device health checks' : 'Built-in queries' %> + +

Fleet's standard query library includes a growing collection of useful queries for organizations deploying Fleet and osquery. Want to add your own query? Please contribute over on GitHub.

diff --git a/website/views/pages/support.ejs b/website/views/pages/support.ejs index c50168f4c9..8a1d76702e 100644 --- a/website/views/pages/support.ejs +++ b/website/views/pages/support.ejs @@ -1,12 +1,50 @@
+ +
+

Ask the community

+

Fleet has an active open-source community of kind and helpful people. If you have a question about something that isn't in the documentation, we hang out in:

+ <%primaryBuyingSituation%> +
+

Support

-

Ask a question, chat with other engineers, or get in touch with the Fleet team.

+

Ask a question, chat with engineers, or get in touch with the Fleet team.

+ -
-

Ask the community

-

Fleet has an active open-source community of knowledgeable and helpful users. If you have a question about something that isn't in the documentation, try one of these places:

-
- +
<%- /* Expose server-rendered data as window.SAILS_LOCALS :: */ exposeLocalsToBrowser() %> diff --git a/website/views/pages/vulnerability-management.ejs b/website/views/pages/vulnerability-management.ejs index 886e50a9e5..b60dee57ec 100644 --- a/website/views/pages/vulnerability-management.ejs +++ b/website/views/pages/vulnerability-management.ejs @@ -131,7 +131,7 @@

Who else uses Fleet?

-

Empowering security and IT teams, globally

+

Empowering <%= ['mdm', 'eo-it'].includes(primaryBuyingSituation) ? 'security and IT' : 'security' %> teams, globally