Website: add /jamf-alternative page (#42776)

Closes: https://github.com/fleetdm/fleet/issues/42538

Changes:
- Added a /jamf-alternative page
- Updated the banner on the homepage to go to the /jamf-alternative
page.
This commit is contained in:
Eric 2026-04-02 11:27:37 -05:00 committed by GitHub
parent 824b617ccb
commit e53daf4971
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 1825 additions and 1 deletions

View file

@ -0,0 +1,27 @@
module.exports = {
friendlyName: 'View jamf alternative',
description: 'Display "Jamf alternative" page.',
exits: {
success: {
viewTemplatePath: 'pages/landing-pages/jamf-alternative'
}
},
fn: async function () {
// Respond with view.
return {};
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,30 @@
parasails.registerPage('jamf-alternative', {
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
data: {
modal: '',
},
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
beforeMount: function() {
//…
},
mounted: async function() {
//…
},
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
methods: {
clickOpenVideoModal: function(modalName) {
this.modal = modalName;
},
closeModal: function() {
this.modal = undefined;
},
}
});

View file

@ -105,4 +105,5 @@
@import 'pages/admin/reset-trial.less';
@import 'pages/landing-pages/linux-management.less';
@import 'pages/articles/basic-whitepaper.less';
@import 'pages/landing-pages/jamf-alternative.less';
@import 'pages/partners.less';

View file

@ -0,0 +1,955 @@
#jamf-alternative {
// Line-heights:
@text-lineheight: 150%;
@heading-lineheight: 120%;
@section-gap-xl: 160px;
@section-gap-l: 120px;
@section-gap-m: 80px;
@inner-gap-xl: 64px;
@inner-gap-l: 48px;
@inner-gap-m: 32px;
@inner-gap-s: 24px;
@inner-gap-xs: 16px;
@inner-gap-xxs: 8px;
h4 {
color: #515774;
text-align: center;
font-feature-settings: 'salt' on, 'ss01' on, 'ss02' on;
font-family: 'Roboto Mono';
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: @text-lineheight;
text-transform: uppercase;
margin-bottom: 0px;
}
h2 {
color: #192147;
text-align: center;
/* Heading/H2 */
font-family: Inter;
font-size: 32px;
font-style: normal;
font-weight: 800;
line-height: @heading-lineheight;
margin-bottom: 0px;
}
p {
margin-bottom: 0px;
}
[purpose='landing-page-container'] {
padding: 64px;
display: flex;
flex-direction: column;
align-items: center;
gap: @section-gap-xl;
}
[purpose='landing-page-content'] {
max-width: 1072px;
width: 100%;
min-width: 0px;
display: flex;
flex-direction: column;
align-items: center;
gap: @section-gap-xl;
}
[purpose='page-hero'] {
display: flex;
flex-direction: column;
align-items: center;
gap: @inner-gap-m;
text-align: center;
width: 100%;
}
[purpose='hero-heading'] {
h1 {
color: #192147;
text-align: center;
/* Heading/H1 */
font-family: Inter;
font-size: 48px;
font-style: normal;
font-weight: 800;
line-height: @heading-lineheight;
margin-bottom: 0px;
}
}
[purpose='hero-logos'] {
margin-top: 88px;
max-width: 1072px;
width: 100%;
[parasails-component='logo-carousel'] {
margin-bottom: 0px;
}
}
[purpose='hero-content'] {
max-width: 582px;
}
[purpose='button-row'] {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
gap: @inner-gap-s;
padding-top: 16px;
a {
font-weight: 700;
font-size: 14px;
line-height: @text-lineheight;
white-space: nowrap;
}
[purpose='cta-button'] {
cursor: pointer;
background: @core-vibrant-green;
border-radius: 8px;
padding: 8px 16px;
height: 36px;
display: flex;
justify-content: center;
align-items: center;
color: #FFF;
position: relative;
text-decoration: none;
overflow: hidden;
min-width: 140px;
}
[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='video-button'] {
display: flex;
flex-direction: row;
align-items: center;
cursor: pointer;
color: #192147;
img {
height: 32px;
margin-right: 8px;
}
span {
margin-left: 4px;
display: inline-block;
color: #8B8FA2;
font-size: 12px;
margin-top: 2px;
font-weight: 400;
}
}
}
[purpose='page-section'] {
display: flex;
flex-direction: column;
align-items: center;
gap: @inner-gap-xl;
min-width: 0px;
}
[purpose='section-title'] {
display: flex;
flex-direction: column;
align-items: center;
// gap: @inner-gap-s;
}
[purpose='section-intro'] {
max-width: 800px;
}
[purpose='section-heading'] {
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: @inner-gap-s;
}
[purpose='feature-card-deck'], [purpose='feature-cards'] {
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: @inner-gap-s;
align-self: stretch;
flex-wrap: wrap;
// justify-content: center;
}
[purpose='feature-card'] {
display: flex;
align-self: stretch;
min-width: 288px;
max-width: 31%;
padding: 32px 32px;
flex-direction: column;
align-items: flex-start;
justify-content: space-between;
flex: 1 0 0;
border-radius: 16px;
border: 1px solid #E2E4EA;
gap: @inner-gap-s;
[purpose='card-title'] {
color: #192147;
/* Title XS */
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: @heading-lineheight;
}
[purpose='card-body'] {
color: #515774;
/* Body/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px; /* 142.857% */
align-self: stretch;
gap: 16px;
display: flex;
flex-direction: column;
}
[purpose='card-footer'] {
border-top: 1px solid #E2E4EA;
margin-top: 16px;
padding-top: 24px;
width: 100%;
justify-self: flex-end;
p {
margin-bottom: 0px;
color: #8B8FA2;
/* Body/XS */
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: 18px;
}
[purpose='callout'] {
color: #009A7D;
/* Body/Emphasis/MD */
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: @text-lineheight;
}
}
}
[purpose='table-legend'] {
display: flex;
flex-direction: row;
gap: @inner-gap-xs;
align-items: center;
justify-content: center;
div {
display: flex;
flex-direction: row;
align-items: center;
gap: @inner-gap-xxs;
img {
height: 16px;
}
}
[purpose='tilde'] {
font-weight: 800;
}
}
[purpose='comparison-table-section'] {
width: 100%;
}
[purpose='comparison-table'] {
margin-top: 32px;
border-radius: 8px;
outline: 1px solid #E2E4EA;
thead {
background: #FFF;
border-bottom: 1px solid #E2E4EA;
th {
border-top: none;
color: #192147;
padding: 12px 24px;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: @text-lineheight;
// border-right: 1px solid #E2E4EA;
&:last-of-type {
// border-right: none;
}
}
}
tbody {
tr {
border-bottom: 1px solid #E2E4EA;
&:last-of-type {
border-bottom: none;
}
&:nth-of-type(even) {
background: #F9FAFC;
}
td {
// height: 124px;
padding: 12px 24px;
align-items: flex-start;
align-self: stretch;
color: #515774;
/* Body XS (FKA p small) */
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: @text-lineheight;
img {
display: inline-block;
height: 16px;
}
[purpose='table-cell'] {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
p {
margin-bottom: 0px;
}
}
[purpose='tilde'] {
font-weight: 800;
display: inline-block;
padding: 0 3px 0 4px;
justify-content: center;
align-items: center;
}
}
td:first-of-type {
color: #192147;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: @text-lineheight;
}
td:nth-of-type(2) {
border-left: none;
border-right: none;
}
td:nth-of-type(4) {
border-left: 1px solid #E2E4EA;
}
}
}
}
[purpose='mobile-comparison-table'] {
display: none;
flex-direction: column;
gap: @inner-gap-xs;
[purpose='mobile-comparison'] {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
align-self: stretch;
border-radius: 8px;
outline: 1px solid #E2E4EA;
font-size: 14px;
color: #515774;
[purpose='product-name'] {
display: flex;
padding: 12px 24px;
align-items: center;
color: #515774;
/* Body/Emphasis/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: @text-lineheight;
}
[purpose='capability'] {
display: flex;
padding: 12px 24px;
align-items: center;
align-self: stretch;
border-bottom: 1px solid #E2E4EA;
color: #515774;
/* Body/Emphasis/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: @text-lineheight;
}
[purpose='fleet-row'] {
display: flex;
// padding: 12px 24px;
align-items: center;
align-self: stretch;
border-bottom: 1px solid #E2E4EA;
}
[purpose='jamf-row'] {
display: flex;
// padding: 12px 24px;
align-items: center;
align-self: stretch;
background: #F9FAFC;
}
[purpose='status'] {
display: flex;
padding: 12px 24px;
align-items: center;
gap: 8px;
flex: 1 0 0;
align-self: stretch;
flex-direction: row;
img {
// margin-right: 8px;
height: 16px;
}
[purpose='red-x'] {
height: 12px;
width: 12px;
}
[purpose='tilde'] {
font-weight: 800;
// margin-right: 8px;
display: inline-block;
}
color: #515774;
/* Body XS (FKA p small) */
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: @text-lineheight;
}
}
}
[purpose='three-column-features'] {
display: flex;
flex-direction: row;
gap: 64px;
[purpose='feature'] {
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: @inner-gap-xs;
color: #515774;
/* Body/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px; /* 142.857% */
p {
margin-bottom: 0px;
}
[purpose='step-title'] {
color: #192147;
text-align: center;
/* Title XS */
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: @heading-lineheight;
}
[purpose='step-number'] {
display: flex;
width: 24px;
height: 24px;
padding: 1.25px 8px 1.75px 8px;
justify-content: center;
align-items: center;
border-radius: 12px;
border: 2px solid #009A7D;
color: #009A7D;
/* Body/Emphasis/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: @text-lineheight;
}
}
}
[purpose='testimonial-cards'] {
display: flex;
flex-direction: row;
max-width: 800px;
align-items: flex-start;
gap: 32px;
[purpose='testimonial-card'] {
width: 50%;
}
}
[purpose='testimonial-card'] {
display: flex;
padding: 32px;
flex-direction: column;
align-items: flex-start;
gap: 24px;
align-self: stretch;
justify-content: space-between;
border-radius: 16px;
border: 1px solid #E2E4EA;
background: #FFF;
p {
margin-bottom: 0px;
}
[purpose='testimonial-logo'] {
img {
max-height: 28px;
}
}
[purpose='testimonial-quote'] {
color: #515774;
/* Body/MD */
font-family: Inter;
font-size: 16px;
font-style: italic;
font-weight: 400;
line-height: @text-lineheight;
}
[purpose='testimonial-quote-author-info'] {
display: flex;
// height: 61px;
align-items: center;
gap: 16px;
justify-self: flex-end;
[purpose='profile-image'] {
img {
border-radius: 50%;
height: 48px;
}
}
[purpose='name'] {
color: #192147;
/* Body/Emphasis/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: @text-lineheight;
}
[purpose='title'] {
color: #515774;
/* Body/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px; /* 142.857% */
}
}
}
[purpose='feature-list-with-image'] {
display: flex;
flex-direction: row;
gap: 48px;
align-items: center;
[purpose='feature-list'] {
width: 50%;
display: flex;
flex-direction: column;
gap: @inner-gap-l;
}
[purpose='feature-image'] {
width: 50%;
display: flex;
max-width: 523.878px;
max-height: 590.566px;
flex-direction: column;
justify-content: center;
align-items: center;
img {
width: 100%;
}
}
[purpose='feature-list-item'] {
display: flex;
flex-direction: row;
gap: @inner-gap-xs;
p {
margin-bottom: 0px;
}
[purpose='feature-icon'] {
height: 19.2px;
display: flex;
align-items: center;
img {
width: 18px;
}
}
[purpose='feature'] {
display: flex;
flex-direction: column;
gap: @inner-gap-xs;
[purpose='feature-heading'] {
color: #192147;
/* Title XS */
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: @heading-lineheight;
}
}
}
}
[purpose='customer-stories-cards'] {
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: 64px 32px;
align-self: stretch;
flex-wrap: wrap;
justify-content: center;
[purpose='testimonial-card'] {
display: flex;
min-width: 288px;
flex-direction: column;
align-items: flex-start;
flex: 1 0 0;
}
}
[purpose='banner-container'] {
background: linear-gradient(0deg, #E9F4F4 25.73%, #FFF 94.97%);
padding: 64px;
}
[purpose='call-to-action-cards'] {
display: flex;
flex-direction: row;
gap: @inner-gap-s;
}
[purpose='cta-card'] {
display: flex;
padding: 32px 32px;
flex-direction: column;
cursor: pointer;
text-align: center;
align-items: center;
flex: 1 0 0;
border-radius: 16px;
gap: 16px;
border: 1px solid #E2E4EA;
background: #FFF;
p {
margin-bottom: 0px;
}
[purpose='cta-icon'] {
img {
height: 39px;
}
}
[purpose='cta-heading'] {
color: #192147;
text-align: center;
/* Title XS */
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: @heading-lineheight;
}
[purpose='cta-text'] {
color: #515774;
text-align: center;
/* Body/SM */
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px; /* 142.857% */
}
}
[purpose='video-modal'] {
[purpose='modal-dialog'] {
width: 100%;
max-width: 100%;
}
[purpose='modal-content'] {
max-width: 1140px;
height: 641px;
background-color: transparent;
box-shadow: none;
border: none;
padding: 0px;
margin-top: 150px;
margin-left: auto;
margin-right: auto;
[purpose='modal-close-button'] {
top: -40px;
right: 0px;
border-radius: 50%;
width: 32px;
height: 32px;
padding: 0px 0px 4px 0px;
background-color: #192147;
color: #FFF;
opacity: 1;
}
}
iframe {
border-radius: 16px;
width: 1140px;
height: 641px;
}
}
@media(max-width: 1200px) {
[purpose='feature-card-deck'] {
[purpose='feature-card'] {
max-width: unset;
min-width: 272px;
}
}
[purpose='feature-cards'] {
[purpose='feature-card'] {
max-width: unset;
}
}
[purpose='hero-logos'] {
margin-top: 48px;
}
[purpose='feature-list-with-image'] {
gap: @inner-gap-l;
}
[purpose='landing-page-content'] {
gap: @section-gap-l;
}
}
@media(max-width: 991px) {
[purpose='landing-page-container'] {
padding: 48px;
}
[purpose='page-section'] {
gap: @inner-gap-l;
}
[purpose='banner-container'] {
padding: 48px;
}
[purpose='three-column-features'] {
gap: 48px;
}
[purpose='feature-list-with-image'] {
flex-direction: column;
gap: @inner-gap-l;
[purpose='feature-list'] {
width: 100%;
gap: @inner-gap-m;
}
[purpose='feature-image'] {
width: 100%;
}
}
[purpose='feature-card-deck'] {
justify-content: stretch;
[purpose='feature-card']:last-of-type {
display: none;
}
}
[purpose='feature-card'] {
display: flex;
min-width: 288px;
max-width: unset;
padding: 32px 32px;
flex-direction: column;
align-items: flex-start;
flex: 1 0 0;
}
[purpose='customer-stories-cards'] {
gap: @inner-gap-l @inner-gap-m;
}
[purpose='video-modal'] {
[purpose='modal-dialog'] {
width: 100%;
max-width: 100%;
}
[purpose='modal-content'] {
max-width: 720px;
height: 405px;
}
iframe {
width: 720px;
height: 405px;
}
}
}
@media(max-width: 767px) {
[purpose='landing-page-container'] {
padding: 32px;
}
[purpose='banner-container'] {
padding: 32px;
}
[purpose='landing-page-content'] {
gap: @section-gap-m;
}
[purpose='hero-logos'] {
margin-top: 32px;
}
[purpose='comparison-table'] {
display: none;
}
[purpose='mobile-comparison-table'] {
margin-top: 16px;
display: flex;
}
[purpose='feature-card-deck'], [purpose='feature-cards'] {
flex-direction: column;
}
[purpose='feature-card'] {
display: flex;
width: 100%;
max-width: unset;
padding: 32px 32px;
flex-direction: column;
align-items: flex-start;
flex: 1 0 0;
}
[purpose='three-column-features'] {
flex-direction: column;
gap: @inner-gap-m;
}
[purpose='testimonial-cards'] {
display: flex;
flex-direction: column;
align-items: flex-start;
width: 100%;
gap: 32px;
[purpose='testimonial-card'] {
width: 100%;
}
}
[purpose='customer-stories-cards'] {
gap: @inner-gap-m;
flex-direction: column;
[purpose='testimonial-card'] {
width: 100%;
&:last-of-type {
display: none;
}
}
}
[purpose='call-to-action-cards'] {
display: flex;
flex-direction: column;
gap: @inner-gap-s;
}
[purpose='video-modal'] {
[purpose='modal-dialog'] {
max-width: 97vw;
}
[purpose='modal-content'] {
max-width: 540px;
height: 304px;
}
iframe {
width: 540px;
height: 304px;
}
}
}
@media(max-width: 575px) {
[purpose='hero-heading'] {
h1 {
font-size: 32px;
}
}
h2 {
font-size: 24px;
}
[purpose='button-row'] {
width: 100%;
[purpose='cta-button'] {
width: 100%;
}
flex-direction: column;
}
[purpose='video-modal'] {
[purpose='modal-content'] {
width: 95vw;
height: calc(~'9/16 * 95vw');
}
iframe {
width: 95vw;
height: calc(~'9/16 * 95vw');
}
}
}
}

View file

@ -609,6 +609,15 @@ module.exports.routes = {
}
},
'GET /jamf-alternative': {
action: 'landing-pages/view-jamf-alternative',
locals: {
currentSection: 'platform',
pageTitleForMeta: 'Replace Jamf with confidence',
pageDescriptionForMeta: 'Replace Jamf with Fleet. Manage devices faster, review changes safely, and deploy across macOS, Windows, and Linux from one platform.'
}
},
'GET /partners': {
action: 'view-partners',
locals: {

View file

@ -918,6 +918,7 @@
<script src="/js/pages/landing-pages/basic-comparison.page.js"></script>
<script src="/js/pages/landing-pages/deployment.page.js"></script>
<script src="/js/pages/landing-pages/gitops-workshop.page.js"></script>
<script src="/js/pages/landing-pages/jamf-alternative.page.js"></script>
<script src="/js/pages/landing-pages/linux-management.page.js"></script>
<script src="/js/pages/legal/privacy.page.js"></script>
<script src="/js/pages/legal/terms.page.js"></script>

View file

@ -1,6 +1,6 @@
<div id="homepage" v-cloak>
<div purpose="announcement-banner">
<animated-arrow-button arrow-color="white" text-color="white" href="/compare/jamf-vs-fleet">We are experiencing a high volume of Jamf replacement inquiries. Click here to compare Fleet vs. Jamf</animated-arrow-button>
<animated-arrow-button arrow-color="white" text-color="white" href="/jamf-alternative">We are experiencing a high volume of Jamf replacement inquiries. Click here to compare Fleet vs. Jamf</animated-arrow-button>
</div>
<%/* Hero container */%>
<div purpose="hero-container">

View file

@ -0,0 +1,801 @@
<div id="jamf-alternative" v-cloak>
<div purpose="landing-page-container">
<div purpose="landing-page-content">
<div purpose="page-hero">
<div purpose="hero-heading">
<h4>Ready to move?</h4>
<h1>Replace Jamf with confidence</h1>
</div>
<div purpose="hero-content">
<p>Whether you're managing 500 endpoints or 50,000, Fleet helps you consolidate tools, automate operations, and strengthen compliance.</p>
</div>
<%// gap %>
<div purpose="button-row">
<a purpose="cta-button" href="/contact">Get a demo</a>
<a purpose="video-button" @click="clickOpenVideoModal('fleet-in-three-minutes')"><img alt="Play" class="d-inline" src="/images/icon-play-video-32x32@2x.png">See Fleet in action <span>3 mins</span></a>
</div>
<%// gap %>
<div purpose="hero-logos">
<logo-carousel></logo-carousel>
</div>
</div><%// page-hero %>
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h2>Why IT leaders are switching from Jamf</h2>
</div>
<div purpose="section-intro">
<p>Reduce tool sprawl, cut licensing costs, and gain confidence in your endpoint posture — all while modernizing your team's workflow.</p>
</div>
</div><%// section-heading %>
<%// gap %>
<div purpose="feature-cards">
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">
Consolidate tools, cut costs
</p>
<p>Replace Jamf + Intune + ad-hoc Linux scripts with one platform. Eliminate duplicate licenses, reduce vendor management overhead, and simplify procurement across every OS.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">114%</span> ROI achieved by Foursquare</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">No add-ons</p>
<p>Jamf charges extra for Protect and Executive Threat Protection. Fleet includes vulnerability detection, CIS benchmarks, YARA malware scanning, and automated remediation in every license.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">1</span> license covers everything</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Real-time compliance confidence</p>
<p>Stop relying on periodic scans. Fleet policies evaluate device compliance continuously and provide real-time dashboards that satisfy auditors, leadership, and security teams.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">Seconds</span> to verify CVEs, not hours</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">True cross-platform management</p>
<p>Jamf specializes in Apple. Fleet manages macOS, Windows, Linux, iOS, iPadOS, Android, and ChromeOS from one console. One inventory, one policy engine, one API.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">7</span> platforms from one console</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">No vendor lock-in</p>
<p>Fleet's codebase is public. Your security team can audit it. Your engineers can contribute. You choose self-hosted or Fleet-hosted cloud — with 100% feature parity either way.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">MIT</span> licensed open core</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Gartner-recognized momentum</p>
<p>Fleet's approach to open device management has been validated in Gartner's 2026 reports, highlighting GitOps, scale, transparency, and real-time data as differentiators.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">2026</span> Gartner recognition</p>
</div>
</div><% // feature-card %>
</div>
</div><%// page-section %>
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h4>Head to Head</h4>
<h2>Fleet vs. Jamf at a glance</h2>
</div>
<div purpose="section-intro">
<p style="max-width: 686px;">A clear comparison of the capabilities IT leaders evaluate when choosing an endpoint management platform.</p>
</div>
</div><%// section-heading %>
<%// gap %>
<div purpose="comparison-table-section">
<div purpose="table-legend">
<div>
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Full support
</div>
<div>
<span purpose="tilde">~</span>
Limited
</div>
<div>
<img alt="❌" purpose="red-x" src="/images/icon-emoji-x-12x12@2x.png">
No support
</div>
</div>
<div purpose="comparison-table">
<table>
<thead>
<tr>
<th>Capability</th>
<th>Fleet</th>
<th>Jamf</th>
</tr>
</thead>
<tbody>
<tr>
<td>Platform support</td>
<td><div purpose="table-cell"><img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
macOS, Windows, Linux, iOS, iPadOS, Android, ChromeOS</div></td>
<td><div purpose="table-cell"><span purpose="tilde">~</span> macOS, iOS, iPadOS, tvOS, visionOS; Android</div></td>
</tr>
<tr>
<td>Architecture</td>
<td><div purpose="table-cell"><img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">API-first, open-core</div></td>
<td>GUI-first, proprietary</td>
</tr>
<tr>
<td>GitOps / Infrastructure as Code</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Built-in, first-class support
</div>
</td>
<td>
<div purpose="table-cell">
<img alt="❌" purpose="red-x" src="/images/icon-emoji-x-12x12@2x.png"> No native support
</div>
</td>
</tr>
<tr>
<td>AI-accelerated management</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Natural language config via GitOps + any LLM
</div>
</td>
<td>
<div purpose="table-cell">
<img alt="❌" purpose="red-x" src="/images/icon-emoji-x-12x12@2x.png">
No AI workflow integration
</div>
</td>
</tr>
<tr>
<td>Real-time device reports</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Live reports across all platforms
</div>
</td>
<td>
<div purpose="table-cell">
<span purpose="tilde">~</span> Limited to Jamf-defined inventory fields
</div>
</td>
</tr>
<tr>
<td>Vulnerability detection</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Included — CVE mapping, YARA, CIS benchmarks
</div>
</td>
<td><div purpose="table-cell"><span purpose="tilde">~</span> Requires Jamf Protect (additional purchase)</div></td>
</tr>
<tr>
<td>Automated remediation</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Policy-driven scripts, software installs, self-service
</div>
</td>
<td><div purpose="table-cell"><span purpose="tilde">~</span> Smart Groups + scripts (less automated)</div></td>
</tr>
<tr>
<td>Pricing model</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Single license, all features included
</div>
</td>
<td>Per-device; security features cost extra</td>
</tr>
<tr>
<td>Deployment flexibility</td>
<td>
<div purpose="table-cell">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
Self-hosted or Fleet-hosted, 100% parity
</div>
</td>
<td>Jamf Cloud or on-premise (DDM only in Cloud)</td>
</tr>
</tbody>
</table>
</div>
<div purpose="mobile-comparison-table">
<div purpose="mobile-comparison">
<div purpose="capability">
Platform support
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">macOS, Windows, Linux, iOS, iPadOS, Android, ChromeOS
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
<span purpose="tilde">~</span> macOS, iOS, iPadOS, tvOS, visionOS; Android
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
Architecture
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">API-first, open-core
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
GUI-first, proprietary
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
GitOps / Infrastructure as Code
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">Built-in, first-class support
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
<img alt="❌" purpose="red-x" src="/images/icon-emoji-x-12x12@2x.png"> No native support
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
AI-accelerated management
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"> Natural language config via GitOps + any LLM
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
<img alt="❌" purpose="red-x" src="/images/icon-emoji-x-12x12@2x.png">
No AI workflow integration
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
Real-time device reports
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"> Live reports across all platforms
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
<span purpose="tilde">~</span> Limited to Jamf-defined inventory fields
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
Vulnerability detection
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"> Included — CVE mapping, YARA, CIS benchmarks
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
<span purpose="tilde">~</span> Requires Jamf Protect (additional purchase)
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
Automated remediation
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">Policy-driven scripts, software installs, self-service
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
<span purpose="tilde">~</span> Smart Groups + scripts (less automated)
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
Pricing model
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"> Single license, all features included
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
Per-device; security features cost extra
</div>
</div>
</div>
<div purpose="mobile-comparison">
<div purpose="capability">
Deployment flexibility
</div>
<div purpose="fleet-row">
<div purpose="product-name"><strong>Fleet</strong></div>
<div purpose="status">
<img alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"> Self-hosted or Fleet-hosted, 100% parity
</div>
</div>
<div purpose="jamf-row">
<div purpose="product-name"><strong>Jamf</strong></div>
<div purpose="status">
Jamf Cloud or on-premise (DDM only in Cloud)
</div>
</div>
</div>
</div>
</div>
</div><%// page-section %>
<%// gap %>
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h4>Migration</h4>
<h2>Migrating from Jamf is easier than you think</h2>
</div>
<div purpose="section-intro">
<p>Fleet offers free migration services and dedicated support. Apple's native MDM migration flow means no factory resets and minimal user disruption.</p>
</div>
</div><%// section-heading %>
<%// gap %>
<div purpose="three-column-features">
<div purpose="feature">
<div purpose="step-number">1</div>
<p purpose="step-title">Assess & plan</p>
<p>Inventory your Jamf environment. Use Fleet's Jamf-to-Fleet terminology guide to map profiles, groups, and extension attributes to Fleet equivalents.</p>
</div><%// feature %>
<div purpose="feature">
<div purpose="step-number">2</div>
<p purpose="step-title">Run in parallel</p>
<p>Deploy Fleet alongside Jamf. Enroll a pilot group, validate configurations, and build team confidence. Fleet's agent runs without conflict alongside Jamf.</p>
</div><%// feature %>
<div purpose="feature">
<div purpose="step-number">3</div>
<p purpose="step-title">Stage the cutover</p>
<p>Migrate devices by department or location using Apple's seamless MDM migration. Thumbtack moved 90%+ of Macs with zero IT intervention.</p>
</div><%// feature %>
</div>
<%// gap %>
<div purpose="testimonial-cards">
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
<img alt="Stripe" src="/images/social-proof-logo-stripe-67x32@2x.png">
</div>
<div purpose="testimonial-quote">
<p>"I just moved 10,000 Macs to Fleet."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="Wes Whetstone" src="/images/testimonial-author-wes-whetstone-48x48@2x.png">
</div>
<div purpose="name-and-title">
<p purpose="name">Wes Whetstone</p>
<p purpose="title">Staff Client Platform Engineer</p>
</div>
</div>
</div><%// testimonial %>
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
<img alt="Foursquare" src="/images/social-proof-logo-foursquare-170x32@2x.png">
</div>
<div purpose="testimonial-quote">
<p>"One of the easiest, quickest, smoothest migrations I've ever done."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="Mike Meyer" src="/images/testimonial-author-mike-meyer-48x48@2x.png">
</div>
<div purpose="name-and-title">
<p purpose="name">Mike Meyer</p>
<p purpose="title">Senior Manager, Corporate Engineering</p>
</div>
</div>
</div><%// testimonial %>
</div>
</div><%// page-section %>
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h4>AI + GitOps</h4>
<h2>AI-accelerated device management,<br>
only possible with GitOps</h2>
</div>
<div purpose="section-intro">
<p>Fleet's GitOps approach unlocks something no GUI-first MDM can offer: the ability to use AI assistants to propose, review, and deploy device configuration changes — with full human oversight.</p>
</div>
</div><%// section-heading %>
<%// gap %>
<div purpose="feature-list-with-image">
<div purpose="feature-list">
<div purpose="feature-list-item">
<div purpose="feature-icon">
<img alt="💬" src="/images/icon-speech-bubble-emoji-18x18@2x.png">
</div>
<div purpose="feature">
<p purpose="feature-heading">Natural language configuration</p>
<div purpose="feature-text">
<p>
Describe a policy change, CVE fix, or configuration update in plain English. Your AI coding assistant generates the YAML, and you review it in a pull request before it ships.
</p>
</div>
</div>
</div>
<div purpose="feature-list-item">
<div purpose="feature-icon">
<img alt="🤖" src="/images/icon-robot-emoji-18x18@2x.png">
</div>
<div purpose="feature">
<p purpose="feature-heading">AI-assisted policy creation</p>
<div purpose="feature-text">
<p>
Fleet uses AI to generate policy descriptions and remediation steps, speeding up compliance workflows and making policies understandable for non-technical stakeholders.
</p>
</div>
</div>
</div>
<div purpose="feature-list-item">
<div purpose="feature-icon">
<img alt="🦾" src="/images/icon-robot-arm-emoji-18x18@2x.png">
</div>
<div purpose="feature">
<p purpose="feature-heading">Works with any LLM</p>
<div purpose="feature-text">
<p>
Use ChatGPT, Claude, Copilot, or air-gapped models. Connect tools like Kilocode with Slack or Teams. Fleet's open format works with your existing AI stack — no vendor lock-in.
</p>
</div>
</div>
</div>
<div purpose="feature-list-item">
<div purpose="feature-icon">
<img alt="🛡️" src="/images/icon-shield-emoji-18x18@2x.png">
</div>
<div purpose="feature">
<p purpose="feature-heading">AI detection and governance</p>
<div purpose="feature-text">
<p>
Track AI tool usage and shadow IT across your fleet. Monitor risky IDE extensions, detect unauthorized AI agents, and enforce governance policies on AI usage.
</p>
</div>
</div>
</div>
</div>
<div purpose="feature-image">
<img alt="Infrastructure as code" src="/images/jamf-alternative-feature-image-524x591@2x.png">
</div>
</div>
</div><%// page-section %>
<%// gap %>
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h4>Practitioner Value</h4>
<h2>Built for the way IT admins actually work</h2>
</div>
<div purpose="section-intro">
<p>Fleet gives admins real-time data, scriptable automation, and tools that work across every OS — without the constraints of a GUI-only platform.</p>
</div>
</div><%// section-heading %>
<%// gap %>
<div purpose="feature-card-deck">
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Zero-touch enrollment + MDM migration</p>
<p>Full Apple Business Manager integration with zero-touch deployment. Apple's built-in MDM migration flow lets you move devices from Jamf without factory resets or user disruption.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: Feature parity on Apple enrollment; Fleet adds Windows and Linux enrollment</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Live reports across every OS</p>
<p>Ask your fleet any question and get answers in seconds. Check disk encryption, find vulnerable software, verify firewall rules — across Mac, Windows, and Linux simultaneously.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: Limited to pre-defined inventory attributes and Apple-only scope</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Software management and patching</p>
<p>Deploy Fleet-maintained apps, custom packages, and App Store apps. Automate patch management with policies that detect outdated software and trigger installs — including self-service options for end users.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: Similar Apple app catalog, but Fleet covers all platforms in one workflow</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Infrastructure as code</p>
<p>Manage profiles, policies, and software in version-controlled YAML. Peer review changes in pull requests. Automate deployments with CI/CD. Roll back mistakes with a single git revert.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: No native GitOps — changes are GUI-only with no built-in version history</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">CIS benchmarks out of the box</p>
<p>Fleet ships with complete CIS benchmark queries for macOS and Windows — ready to run. No additional products, no additional cost. Monitor compliance continuously, not periodically.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: Requires Jamf Protect (separate license) for equivalent security checks</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Cross-platform scripting</p>
<p>Execute scripts on macOS, Windows, and Linux hosts directly from the Fleet UI or API. Automate remediation with policy-triggered scripts. No juggling separate tools for each OS.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: Scripts only run on Apple devices</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">API-first — automate everything</p>
<p>Every feature in Fleet's UI is available 1:1 via API. Build integrations with Jira, Slack, Snowflake, Splunk, Okta, and more. Pipe data to your SIEM in real time.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: Multiple APIs with inconsistent coverage; less automation-friendly</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card">
<div purpose="card-body">
<p purpose="card-title">Linux as a first-class citizen</p>
<p>Fleet manages Linux with the same depth as macOS and Windows — disk encryption, software deployment, configuration profiles, and full visibility. No compromises.</p>
</div>
<div purpose="card-footer">
<p><span purpose="callout">vs. Jamf</span>: No Linux support whatsoever</p>
</div>
</div><% // feature-card %>
<div purpose="feature-card" style="border: none; height: 0px; padding: 0px; width: 100%; min-width: 31%;">
</div>
</div>
</div><%// page-section %>
<%// gap %>
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h4>Customer Stories</h4>
<h2>Hear from teams that made the switch</h2>
</div>
<div purpose="section-intro">
<p>Organizations across FinTech, SaaS, gaming, healthcare, and more trust Fleet to manage their endpoints.</p>
</div>
</div><%// section-heading %>
<%// gap %>
<div purpose="customer-stories-cards">
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
<img alt="Fastly logo" src="/images/social-proof-logo-fastly-83x32@2x.png">
</div>
<div purpose="testimonial-quote">
<p>"Fleet enabled us to consolidate our patchwork of endpoint tools with a single platform, eliminating complexity and cutting licensing costs."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="Dan Jackson" src="/images/testimonial-author-dan-jackson-48x48.png">
</div>
<div purpose="name-and-title">
<p purpose="name">Dan Jackson</p>
<p purpose="title">Sr Manager, Systems Engineering</p>
</div>
</div>
</div><%// testimonial %>
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
</div>
<div purpose="testimonial-quote">
<p>"We wanted an open-source MDM to easily use infrastructure as code, deliver the best possible experience for our employees, and make security happy."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="Kenny Botelho" src="/images/testimonial-author-kenny-botelho-2-48x48@2x.png">
</div>
<div purpose="name-and-title">
<p purpose="name">Kenny Botelho</p>
<p purpose="title">Client Platform IT Engineer</p>
</div>
</div>
</div><%// testimonial %>
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
<img alt="Conductor one logo" src="/images/social-proof-logo-condunctorone-214x32@2x.png">
</div>
<div purpose="testimonial-quote">
<p>"Fleet is incredibly easy to deploy and perfect for lean IT teams. It's everything we need in a device management platform, simple, efficient, and powerful."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="Chayce O'Neal" src="/images/testimonial-author-chayce-oneal-100x100@2x.png">
</div>
<div purpose="name-and-title">
<p purpose="name">Chayce O'Neal</p>
<p purpose="title">Head of IT</p>
</div>
</div>
</div><%// testimonial %>
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
<img alt="Flock logo" src="/images/logo-flock-safety-907x132@2x.png">
</div>
<div purpose="testimonial-quote">
<p>"This is not just production osquery, but actually a way bigger opportunity than even something like Airwatch or Jamf."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="Eric Tan" src="/images/testimonial-author-eric-tan-99x99@2x.png">
</div>
<div purpose="name-and-title">
<p purpose="name">Eric Tan</p>
<p purpose="title">CIO & CSO </p>
</div>
</div>
</div><%// testimonial %>
<div purpose="testimonial-card">
<div purpose="testimonial-logo">
<img alt="Ghost logo" src="/images/social-proof-logo-ghost-86x32@2x.png">
</div>
<div purpose="testimonial-quote">
<p>"Fleet made the process of migrating fast, easy, and simple. We're excited to work with a team that's aligned with us on open source."</p>
</div>
<div purpose="testimonial-quote-author-info">
<div purpose="profile-image">
<img alt="John O'Nolan" src="/images/testimonial-author-john-o'nolan-100x100@2x.png">
</div>
<div purpose="name-and-title">
<p purpose="name">John O'Nolan</p>
<p purpose="title">Founder & CEO</p>
</div>
</div>
</div><%// testimonial %>
<div purpose="testimonial-card" style="border: none; height: 0px;">
</div>
</div>
</div><%// page-section %>
</div><%// content %>
</div><%// container %>
<div purpose="banner-container">
<div purpose="page-section">
<div purpose="section-heading">
<div purpose="section-title">
<h4>Ready to move?</h4>
<h2>Replace Jamf with confidence</h2>
</div>
<div purpose="section-intro">
<p>Whether you're managing 500 endpoints or 50,000, Fleet helps you consolidate tools, automate operations, and strengthen compliance.</p>
</div>
</div><%// section-heading %>
<div purpose="call-to-action-cards">
<div purpose="cta-card" @click="goto('/contact')">
<div purpose="cta-icon">
<img alt="🎯" src="/images/icon-target-emoji-32x32@2x.png">
</div>
<p purpose="cta-heading">
Personalized demo
</p>
<p purpose="cta-text">
See Fleet managing Mac, Windows, and Linux — tailored to your environment.
</p>
</div>
<div purpose="cta-card" @click="goto('/articles/free-migration-from-jamf-to-fleet')">
<div purpose="cta-icon">
<img alt="🔄" src="/images/icon-recycle-emoji-32x32@2x.png">
</div>
<p purpose="cta-heading">
Free migration
</p>
<p purpose="cta-text">
Fleet offers complimentary migration support for teams switching from Jamf.
</p>
</div>
<div purpose="cta-card" @click="goto('/gitops-workshop')">
<div purpose="cta-icon">
<img alt="🛠️" src="/images/icon-tools-emoji-32x32@2x.png">
</div>
<p purpose="cta-heading">
GitOps workshop
</p>
<p purpose="cta-text">
Join an in-person workshop and see GitOps for device management in action.
</p>
</div>
</div>
</div><%// page-section %>
</div>
<%/* Cloud city banner */%>
<parallax-city></parallax-city>
<modal purpose="video-modal" v-if="modal === 'fleet-in-three-minutes'" @close="closeModal()">
<iframe width="560" height="315" src="https://www.youtube.com/embed/q1Tm3IBcx24?rel=0&autoplay=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</modal>
</div>
<%- /* Expose server-rendered data as window.SAILS_LOCALS :: */ exposeLocalsToBrowser() %>