diff --git a/articles/consolidate-multiple-tools-with-fleet.md b/articles/consolidate-multiple-tools-with-fleet.md
index cbcd88ea88..0d0fb2bfa4 100644
--- a/articles/consolidate-multiple-tools-with-fleet.md
+++ b/articles/consolidate-multiple-tools-with-fleet.md
@@ -4,19 +4,24 @@ Scaling organizations face a common challenge: managing every device efficiently
## Fleet’s impact
-* **Eliminate tool overlap:**
-Fleet reduced tool overlap by consolidating multiple legacy solutions - improving efficiency and reducing SaaS spending without compromising functionality.
+
-* **Next-gen change management:**
-GitOps capabilities reduce mistakes through peer reviews and keep track of changes for faster auditing.
+**Eliminate tool overlap:** Fleet reduced tool overlap by consolidating multiple legacy solutions - improving efficiency and reducing SaaS spending without compromising functionality.
-* **Definitive data:**
-Reliable, live access to their infrastructure to verify device data for better decisions surrounding end-user access and auditing context.
+**Next-gen change management:** GitOps capabilities reduce mistakes through peer reviews and keep track of changes for faster auditing.
-* **Seamless customization and integration:**
-Electing to self-host Fleet, and as the company continued to scale, they did so without a single point to their impressive 99.99% uptime.
+**Definitive data:** Reliable, live access to their infrastructure to verify device data for better decisions surrounding end-user access and auditing context.
-"We've been using Fleet for a few years and we couldn't be happier. The fact that it's also open-source made it easy for us to try it out, customize it to our needs, and seamlessly integrate it into our existing environment." - Head of Developer Infrastructure & Corporate Technology
+**Seamless customization and integration:** Electing to self-host Fleet, and as the company continued to scale, they did so without a single point to their impressive 99.99% uptime.
+
+
+
+
+
+We've been using Fleet for a few years and we couldn't be happier. The fact that it's also open-source made it easy for us to try it out, customize it to our needs, and seamlessly integrate it into our existing environment.
+
+**- Head of Developer Infrastructure & Corporate Technology**
+
**Challenge:** They looked to simplify how they manage devices and reduce tool overlap without sacrificing control over their infrastructure. The use of multiple proprietary device management tools was creating operational silos, and it required specialized expertise for different legacy systems, leading to inefficiencies.
@@ -47,14 +52,23 @@ Not soon after in April 2023, Fleet announced open-source, [cross-platform MDM c
### Eliminate tool overlap with easy deployment
-"Mad props to how easy making a deploy pkg of the agent was. I wish everyone made stuff that easy."
-— Staff Client Platform Engineer
+
+
+Mad props to how easy making a deploy pkg of the agent was. I wish everyone made stuff that easy.
+
+**— Staff Client Platform Engineer**
+
Fleet's straightforward deployment package allowed a quick install of the agent across all of its devices. By supporting macOS, Windows, and Linux, Fleet enabled them to not only continue managing osquery but also consolidate its legacy device management tools into a single self-hosted MDM without sacrificing existing control.
### Next-gen change management and open-source flexibility
-"We've been using Fleet for a few years and we couldn't be happier. The fact that it's also open-source made it easy for us to try it out, customize it to our needs, and seamlessly integrate it into our existing environment." — Head of Developer Infrastructure & Corporate Technology
+
+
+We've been using Fleet for a few years and we couldn't be happier. The fact that it's also open-source made it easy for us to try it out, customize it to our needs, and seamlessly integrate it into our existing environment.
+
+**— Head of Developer Infrastructure & Corporate Technology**
+
Being [open-source](http://fleetdm.com/handbook/company/why-this-way?utm_content=eo-security#why-open-source), Fleet provided the transparency and flexibility to tailor the platform to their specific requirements. This fostered trust among engineering teams and allows them to audit, customize, and extend the platform as needed.
@@ -82,6 +96,9 @@ Fleet's cross-platform support and open-source transparency set it apart from co
To learn more about how Fleet can support your organization, visit [fleetdm.com/mdm](https://fleetdm.com/mdm).
+
+
+
diff --git a/articles/global-cloud-platform-simplifies-device-management-with-fleet.md b/articles/global-cloud-platform-simplifies-device-management-with-fleet.md
index 0c1308bbf4..a3010d256c 100644
--- a/articles/global-cloud-platform-simplifies-device-management-with-fleet.md
+++ b/articles/global-cloud-platform-simplifies-device-management-with-fleet.md
@@ -1,23 +1,30 @@
# Global edge cloud platform simplifies device management with Fleet
-_“We had a different MDM for Mac, a different MDM for Windows, and a different MDM for Linux... it’s just too much.”_
+
+
+We had a different MDM for Mac, a different MDM for Windows, and a different MDM for Linux... it’s just too much.
+
+
## Fleet's impact:
-* **Eliminate tool overlap:**
+
+
+**Eliminate tool overlap:**
Fleet’s unified platform eliminates the need to manage multiple MDM platforms for each operating system. By providing in-depth data insights in real-time, this global cloud platform was also able to replace other tools often deployed alongside other MDM solutions to maintain full control over their infrastructure.
-* **Definitive data for instant audits:**
+**Definitive data for instant audits:**
Fleet provides trustworthy data and portability to send their data to systems other teams can also work out of, simplifying compliance processes and making audits less burdensome.
-* **Automated updates**
+**Automated updates**
Policy automation eliminated manual intervention for software updates and patching, keeping their devices more secure and freeing IT resources.
-* **Improved support efficiency**
+**Improved support efficiency**
Accurate, real-time data allowed support teams to resolve issues faster and assist employees more effectively.
-* **Zero-touch onboarding to self-service**
+**Zero-touch onboarding to self-service**
Fleet provides a great out-of-the-box user experience from day one, while also empowering employees to stay productive without needing to reach out to IT.
+
**Challenge:** The cloud platform was managing thousands of devices with multiple tools across multiple operating systems and global locations, resulting in fragmented processes and unreliable asset data. This complexity compromised security, compliance, and operational efficiency, making it difficult to maintain consistent device check-ins and accurate inventory.
@@ -39,7 +46,12 @@ While continuing to expand, managing a diverse range of devices across multiple
## The solution
-_“We had a different MDM for Mac, a different MDM for Windows, a different MDM for Linux, and a different MDM for Android build devices… it’s just too much.” — Staff Client Platform Engineer_
+
+
+We had a different MDM for Mac, a different MDM for Windows, a different MDM for Linux, and a different MDM for Android build devices… it’s just too much.
+
+**— Staff Client Platform Engineer**
+
A unified solution was needed to replace multiple device management suppliers with a single platform. Fleet provided the tools and flexibility required to address these challenges through:
@@ -74,9 +86,17 @@ In addition to automated patching, Fleet empowers employees with self-service to
## Conclusion
Fleet has become an essential part of this cloud platform's infrastructure, allowing the company to manage its devices more effectively. By consolidating tools across platforms, Fleet simplified device operations and ensured compliance with stringent requirements. The platform’s automation and real-time data capabilities reduced manual efforts and provided accurate insights, while its self-service tools helped employees resolve unique issues independently. These improvements have supported the goals of maintaining security, reliability, and efficient operations as the company continues to grow.
+
By adopting Fleet, they've transformed its device management processes, achieving greater security, reliability, and scalability to support its global operations.
-_“I love Fleet.” — Staff Client Platform Engineer_
+
+
+I love Fleet.
+
+**— Staff Client Platform Engineer**
+
+
+
diff --git a/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md b/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md
index 57c2cb0a74..d2b83d2788 100644
--- a/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md
+++ b/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md
@@ -1,6 +1,11 @@
# Worldwide security and authentication platform chooses Fleet for Linux management
-“My biggest issue with Linux is that no one considers Linux. It's never the first thing. It's always the last thing. And as the advocate and evangelist for Linux in the IT org broadly, I have to make the security guys stop and go, hey, hang on a second. We're also here. You know, we matter…” — Technical Systems Engineer
+
+
+My biggest issue with Linux is that no one considers Linux. It's never the first thing. It's always the last thing. And as the advocate and evangelist for Linux in the IT org broadly, I have to make the security guys stop and go, hey, hang on a second. We're also here. You know, we matter…
+
+**— Technical Systems Engineer**
+
## Challenge
@@ -15,13 +20,16 @@ By adopting Fleet, they were able to unify their [device management](https://fle
## Results
-- Fleet enabled Linux device management and replaced legacy tools for telemetry and system configuration. This reduced their previously typical compliance woes and lack of standard MDM features.
+
-- Employees are free to work with their preferred operating systems of choice.
+Fleet enabled Linux device management and replaced legacy tools for telemetry and system configuration. This reduced their previously typical compliance woes and lack of standard MDM features.
-- [Fleet’s API](https://fleetdm.com/docs/rest-api/rest-api) and live query capabilities ensured up-to-date inventory data to meet stringent security and access control requirements while integrating with existing systems.
+Employees are free to work with their preferred operating systems of choice.
-- Fleet’s policy automation ensures that software and configurations can remain secure without requiring manual intervention, thereby freeing up IT resources.
+[Fleet’s API](https://fleetdm.com/docs/rest-api/rest-api) and live query capabilities ensured up-to-date inventory data to meet stringent security and access control requirements while integrating with existing systems.
+
+Fleet’s policy automation ensures that software and configurations can remain secure without requiring manual intervention, thereby freeing up IT resources.
+
Implementing Fleet significantly enhanced their device management strategy by centralizing Linux operations, improving security compliance, and increasing the operational efficiency of these previously overlooked devices. Fleet’s automation and integration capabilities ensured accurate and reliable asset inventory across teams, and empowered technical users with self-service tools, maintaining high security standards across all of their devices.
@@ -69,7 +77,9 @@ Fleet’s ability to scale horizontally allowed the company to manage thousands
By providing tools typically overlooked for Linux, Fleet's open-source platform completes the circle of high-security standards, compliance, and trust with a technically proficient and privacy-conscious Linux user base. Fleet’s automation and integration capabilities meant that IT could still use the tools they wanted, without leaving Linux behind. This proved vital for the company which continues to scale globally.
-To learn more about how Fleet can support your organization, visit [fleetdm.com/mdm](fleetdm.com/mdm)
+To learn more about how Fleet can support your organization, visit [fleetdm.com/mdm](fleetdm.com/mdm).
+
+
diff --git a/website/assets/images/icon-checkbox-checked-24x24@2x.png b/website/assets/images/icon-checkbox-checked-24x24@2x.png
new file mode 100644
index 0000000000..fd0d7b8f94
Binary files /dev/null and b/website/assets/images/icon-checkbox-checked-24x24@2x.png differ
diff --git a/website/assets/js/components/call-to-action.component.js b/website/assets/js/components/call-to-action.component.js
index c6843132de..59c8b78c35 100644
--- a/website/assets/js/components/call-to-action.component.js
+++ b/website/assets/js/components/call-to-action.component.js
@@ -13,6 +13,7 @@ parasails.registerComponent('callToAction', {
// ╠═╝╠╦╝║ ║╠═╝╚═╗
// ╩ ╩╚═╚═╝╩ ╚═╝
props: [
+ 'type', // Required for a custom call-to-action. If undefined, the call to action component will default to a CTA that matches the landing pages (As of 2024-12-11)
'title', // Required: The title of this call-to-action
'text', // Required: The text of the call to action
'primaryButtonText', // Required: The text of the call to action's button
@@ -49,7 +50,7 @@ parasails.registerComponent('callToAction', {
// ╩ ╩ ╩ ╩ ╩╩═╝
template: `
-
+
{{callToActionTitle}}
{{callToActionText}}
@@ -61,6 +62,10 @@ parasails.registerComponent('callToAction', {
+
`,
@@ -71,31 +76,36 @@ parasails.registerComponent('callToAction', {
},
mounted: async function() {
- if (this.title) {
- this.callToActionTitle = this.title;
- } else {
- throw new Error('Incomplete usage of
: Please provide a `title` example: title="Secure laptops & servers"');
- }
- if (this.text) {
- this.callToActionText = this.text;
- } else {
- throw new Error('Incomplete usage of : Please provide a `text` example: text="Get up and running with a test environment of Fleet within minutes"');
- }
- if (this.primaryButtonText) {
- this.calltoActionPrimaryBtnText = this.primaryButtonText;
- } else {
- throw new Error('Incomplete usage of : Please provide a `primaryButtonText`. example: primary-button-text="Get started"');
- }
- if (this.primaryButtonHref) {
- this.calltoActionPrimaryBtnHref = this.primaryButtonHref;
- } else {
- throw new Error('Incomplete usage of : Please provide a `primaryButtonHref` example: primary-button-href="/get-started?try-it-now"');
- }
- if (this.secondaryButtonText) {
- this.calltoActionSecondaryBtnText = this.secondaryButtonText;
- }
- if (this.secondaryButtonHref) {
- this.calltoActionSecondaryBtnHref = this.secondaryButtonHref;
+ if(this.type) {
+ if(this.type !== 'custom') {
+ throw new Error('Unsupported usage of : The only supported "type" value at this time is "custom"');
+ }
+ if (this.title) {
+ this.callToActionTitle = this.title;
+ } else {
+ throw new Error('Incomplete usage of : Please provide a `title` example: title="Secure laptops & servers"');
+ }
+ if (this.text) {
+ this.callToActionText = this.text;
+ } else {
+ throw new Error('Incomplete usage of : Please provide a `text` example: text="Get up and running with a test environment of Fleet within minutes"');
+ }
+ if (this.primaryButtonText) {
+ this.calltoActionPrimaryBtnText = this.primaryButtonText;
+ } else {
+ throw new Error('Incomplete usage of : Please provide a `primaryButtonText`. example: primary-button-text="Get started"');
+ }
+ if (this.primaryButtonHref) {
+ this.calltoActionPrimaryBtnHref = this.primaryButtonHref;
+ } else {
+ throw new Error('Incomplete usage of : Please provide a `primaryButtonHref` example: primary-button-href="/get-started?try-it-now"');
+ }
+ if (this.secondaryButtonText) {
+ this.calltoActionSecondaryBtnText = this.secondaryButtonText;
+ }
+ if (this.secondaryButtonHref) {
+ this.calltoActionSecondaryBtnHref = this.secondaryButtonHref;
+ }
}
},
watch: {
diff --git a/website/assets/styles/components/call-to-action.component.less b/website/assets/styles/components/call-to-action.component.less
index 7df62d421e..b92f42fdad 100644
--- a/website/assets/styles/components/call-to-action.component.less
+++ b/website/assets/styles/components/call-to-action.component.less
@@ -7,9 +7,56 @@
// Note: This component has been given an ID to override page specific styles
[parasails-component='call-to-action'], #cta-component {
margin-top: 40px;
- margin-bottom: 40px;
+ // margin-bottom: 40px;
// For customizeable call to action
+ [purpose='default-cta'] {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ a {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 150%;
+ white-space: nowrap;
+ }
+ [purpose='cta-button'] {
+ cursor: pointer;
+ margin-right: 24px;
+ background: @core-vibrant-red;
+ border-radius: 8px;
+ padding: 16px;
+ height: 36px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #FFF;
+ position: relative;
+ text-decoration: none;
+ overflow: hidden;
+ &:hover {
+ color: #FFF;
+ }
+ }
+ [purpose='cta-button']::before {
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%);
+ opacity: 1;
+ content: ' ';
+ position: absolute;
+ top: 0;
+ left: -5px;
+ width: 70%;
+ height: 100%;
+ transform: skew(-10deg);
+ transition: left 0.5s ease-in, opacity 0.50s ease-in, width 0.5s ease-in;
+ }
+ [purpose='cta-button']:hover:before {
+ opacity: 0;
+ left: 160px;
+ width: 110%;
+ }
+
+ }
[purpose='custom-cta'] {
background-image: url('/images/call-to-action-banner-background.svg');
background-position-x: center;
@@ -310,4 +357,18 @@
}
}
}
+ @media (max-width: 375px) {
+
+ [purpose='default-cta'] {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ [purpose='cta-button'] {
+ cursor: pointer;
+ width: 100%;
+ margin-right: 0px;
+ margin-bottom: 12px;
+ }
+ }
+ }
}
diff --git a/website/assets/styles/pages/articles/basic-article.less b/website/assets/styles/pages/articles/basic-article.less
index 37028ceb3d..09f4b48102 100644
--- a/website/assets/styles/pages/articles/basic-article.less
+++ b/website/assets/styles/pages/articles/basic-article.less
@@ -425,13 +425,13 @@
}
h2 {
font-size: 24px;
- margin-top: 40px;
- margin-bottom: 24px;
+ margin-top: 64px;
+ margin-bottom: 32px;
}
h3 {
font-size: 20px;
- margin-top: 16px;
- margin-bottom: 16px;
+ margin-top: 48px;
+ margin-bottom: 32px;
}
h4 {
font-size: 16px;
@@ -452,8 +452,9 @@
}
p {
font-size: 16px;
- line-height: 28px;
- margin-bottom: 24px;
+ line-height: 150%;
+ color: #515774;
+ margin-bottom: 32px;
}
img + em { // Image captions
position: relative;
@@ -633,6 +634,66 @@
width: 22px;
height: 18px;
}
+ [purpose='attribution-quote'] {
+ margin: 72px 0 32px 0px;
+ p {
+ font-style: italic;
+ line-height: 150%;
+ margin-bottom: 24px;
+ font-size: 20px;
+ }
+ p:last-of-type {
+ margin-bottom: 0px;
+ }
+ strong {
+ color: #515774;
+ font-family: Inter;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: 18px;
+ }
+ }
+ [purpose='attribution-quote']::before {
+ content: ' ';
+ background-image: url('/images/icon-quote-21x17@2x.png');
+ background-repeat: no-repeat;
+ background-size: 21px 17px;
+ display: block;
+ position: relative;
+ top: -16px;
+ left: 0px;
+ width: 21px;
+ height: 17px;
+ }
+ [purpose='checklist'] {
+ margin-bottom: 32px;
+ p {
+ font-size: 16px;
+ line-height: 150%;
+ font-style: normal;
+ font-weight: 400;
+ padding-left: 40px;
+ text-indent: -40px;
+ margin-bottom: 16px;
+ padding-top: 12px;
+ padding-bottom: 12px;
+ &:last-of-type {
+ margin-bottom: 0px;
+ }
+ }
+ p::before {
+ content: ' ';
+ background-image: url('/images/icon-checkbox-checked-24x24@2x.png');
+ background-size: 24px 24px;
+ display: inline-block;
+ position: relative;
+ top: 7px;
+ margin-right: 16px;
+ width: 24px;
+ height: 24px;
+ }
+ }
[purpose='tip'] {
margin: 16px 0 32px;
background: #F7F7FC;
@@ -795,6 +856,7 @@
[purpose='large-button-text'] { // Changes the Slack call to action (Join the Fleet community on Slack -> Join Fleet on Slack)
display: none;
}
+
}
}
diff --git a/website/views/pages/articles/basic-article.ejs b/website/views/pages/articles/basic-article.ejs
index 20048a7f4e..a469250b63 100644
--- a/website/views/pages/articles/basic-article.ejs
+++ b/website/views/pages/articles/basic-article.ejs
@@ -116,7 +116,7 @@
-
+
<%- partial(path.relative(path.dirname(__filename), path.resolve( sails.config.appPath, path.join(sails.config.builtStaticContent.compiledPagePartialsAppPath, thisPage.htmlId)))) %>