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.
27
website/api/controllers/landing-pages/view-jamf-alternative.js
vendored
Normal 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 {};
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
BIN
website/assets/images/icon-recycle-emoji-32x32@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
website/assets/images/icon-robot-arm-emoji-18x18@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
website/assets/images/icon-robot-emoji-18x18@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
website/assets/images/icon-shield-emoji-18x18@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
website/assets/images/icon-speech-bubble-emoji-18x18@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
website/assets/images/icon-target-emoji-32x32@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
website/assets/images/icon-tools-emoji-32x32@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
website/assets/images/jamf-alternative-feature-image-524x591@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
website/assets/images/social-proof-logo-ghost-86x32@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 11 KiB |
30
website/assets/js/pages/landing-pages/jamf-alternative.page.js
vendored
Normal 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;
|
||||
},
|
||||
}
|
||||
});
|
||||
1
website/assets/styles/importer.less
vendored
|
|
@ -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';
|
||||
|
|
|
|||
955
website/assets/styles/pages/landing-pages/jamf-alternative.less
vendored
Normal 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');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
9
website/config/routes.js
vendored
|
|
@ -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: {
|
||||
|
|
|
|||
1
website/views/layouts/layout.ejs
vendored
|
|
@ -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>
|
||||
|
|
|
|||
2
website/views/pages/homepage.ejs
vendored
|
|
@ -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">
|
||||
|
|
|
|||
801
website/views/pages/landing-pages/jamf-alternative.ejs
vendored
Normal 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() %>
|
||||