Files
Eric ce47cb924a Website: Update contact form for users who visit the page from "Get a demo" buttons (#49929)
Closes:  https://github.com/fleetdm/fleet/issues/47653

Changes:
- Updated the contact page to only display the "Talk to us" form if a
user visits it with a `?talkToUs` query string.
- Updated all "Get a demo" buttons to go to `/contact?talkToUs`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
  * Added a dedicated “Talk to us” contact experience.
* Updated “Get a demo,” “Talk to sales,” and “Talk to an engineer” links
across the site to open the appropriate contact form directly.
* **Bug Fixes**
* Improved contact form selection so the requested form displays
consistently across supported pages.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-24 18:27:11 -05:00

256 lines
17 KiB
Plaintext
Vendored
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div id="pricing" v-cloak>
<div purpose="page-content" class="container-fluid mx-auto">
<div class="px-0 d-flex flex-column justify-content-center pt-5 mx-auto">
<div purpose="hero-text">
<h2 class="text-center mb-5">
Compare plans and pricing
</h2>
</div>
<div purpose="pricing-tiers" class="d-flex flex-column flex-lg-row justify-content-center">
<%// Fleet Free tier card %>
<div purpose="pricing-card">
<div purpose="free-tier-card" class="card d-flex flex-lg-column flex-sm-row flex-column h-100">
<div purpose="pricing-tier-image">
</div>
<div purpose="pricing-card-body">
<div purpose="pricing-tier-title">
<div class="d-flex flex-row justify-content-start">
<div class="d-flex flex-column justify-content-between">
<h2>Free</h2>
<h3>Basic features, no support</h3>
<div purpose="tier-price" class="d-flex flex-row align-items-center">
<h1><span purpose="price-dollar-sign">$</span>0</h1><strong>/ host <br purpose="premium-price-linebreak">/ month</strong>
</div>
</div>
</div>
</div>
<div purpose="button-container" class="d-flex flex-row align-items-center">
<animated-arrow-button href="/docs">
Read the docs
</animated-arrow-button>
</div>
</div>
</div>
</div>
<%// Fleet Premium tier card %>
<div purpose="pricing-card" class="d-flex flex-column justify-content-center">
<div purpose="premium-tier-card" class="card d-flex h-100 flex-lg-column flex-sm-row flex-column">
<div purpose="pricing-tier-image">
</div>
<div purpose="pricing-card-body">
<div purpose="pricing-tier-title">
<div class="d-flex flex-column justify-content-between">
<div class="d-flex flex-column justify-content-start">
<h2>Premium</h2>
<h3>Manage and protect endpoints</h3>
<div purpose="tier-price" class="d-flex flex-row align-items-center justify-content-start">
<h1><span purpose="price-dollar-sign">$</span>7.00</h1><strong>/ host <br purpose="premium-price-linebreak">/ month</strong>
</div>
</div>
</div>
</div>
<a purpose="card-button" class="btn btn-block btn-lg btn-primary mx-auto mb-0" href="/new-license">Get started</a>
</div>
</div>
</div>
<%// Custom tier card %>
<div purpose="pricing-card" class="d-flex flex-column justify-content-center">
<div purpose="custom-tier-card" class="card d-flex h-100 flex-lg-column flex-sm-row flex-column">
<div purpose="pricing-tier-image">
</div>
<div purpose="pricing-card-body">
<div purpose="pricing-tier-title">
<div class="d-flex flex-column justify-content-between">
<div class="d-flex flex-column justify-content-center">
<h2>Custom</h2>
<h3>For teams who can move quickly with large deployments.</h3>
</div>
</div>
</div>
<div>
<a purpose="card-button" class="btn btn-block btn-lg btn-primary mx-auto mb-0" href="/contact?talkToUs">Talk to sales</a>
</div>
</div>
</div>
</div>
</div>
<div purpose="logos-container" class="flex-column flex-wrap align-items-center w-100">
<logo-carousel></logo-carousel>
</div>
</div>
<%// All features %>
<div purpose="features-table" class="d-flex flex-column justify-content-center mx-auto px-0 ">
<div class="d-flex flex-column p-0" :class="[showExpandedTable ? '' : 'truncated']">
<%// Desktop features tables %>
<div class="d-none d-md-block">
<% for(let category of pricingTable) {%>
<table purpose="pricing-categories-table" class="table">
<thead>
<tr>
<td><h5><%- category.categoryName %></h5></td>
<%if(pricingTable.indexOf(category) === 0) {%>
<td class="text-center">
<strong>Free</strong>
</td>
<%}else {%>
<td ></td>
<%}%>
<%if(pricingTable.indexOf(category) === 0) {%>
<td class="text-center">
<strong>Premium</strong>
</td>
<%}else {%>
<td ></td>
<%}%>
</tr>
</thead>
<tbody>
<% for( let feature of category.features){ %>
<tr>
<%if(feature.description && feature.documentationUrl) {%>
<td purpose="feature-name"><%- feature.name %><%- feature.comingSoon ? '*' : '' %><a href="<%- feature.documentationUrl %>" target="_blank" no-icon><img class="d-inline has-link" purpose="tooltip-icon" src="/images/icon-more-info-14x14@2x.png" alt="More info" data-toggle="tooltip" tabindex="0" data-placement="top" data-html="true" title="<p><%= feature.description +'</p>'+ [feature.documentationUrl ? '<p class="d-flex flex-row align-items-center mb-0">Click <img src="/images/icon-more-info-25-14x14@2x.png" class="mx-1" style="height: 12px; display: inline;" alt="more info"> to learn more</p>' : ''] %> "></a></td>
<% } else if(feature.description) {%>
<td purpose="feature-name"><%- feature.name %><%- feature.comingSoon ? '*' : '' %><img class="d-inline" purpose="tooltip-icon" src="/images/icon-more-info-14x14@2x.png" alt="More info" data-toggle="tooltip" tabindex="0" data-placement="top" data-html="true" title="<%= feature.description %> "></td>
<% } else {%>
<td purpose="feature-name"><%- feature.name %><%- feature.comingSoon ? '*' : '' %></td>
<% } %>
<%if(feature.tier === 'Free') {%>
<td purpose="table-checkmark"><img class="mx-auto" alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"></td>
<%} else {%>
<td purpose="table-checkmark"></td>
<%}%>
<td purpose="table-checkmark"><img class="mx-auto" alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png"></td>
</tr>
<% }%>
</tbody>
</table>
<% }%>
<p style="color: #515774;" class="mb-0 w-100">* Coming soon</p>
</div>
<%// Mobile features tables %>
<div purpose="mobile-feature-table-section" class="d-block d-md-none" v-for="category in pricingTable">
<h5>{{category.categoryName}}</h5>
<div purpose="mobile-features-table" class="d-flex flex-column" v-for="feature in category.features">
<div purpose="striped-row" class="d-flex flex-row justify-content-between align-items-center">
<strong class="d-block">
{{feature.name}}{{feature.comingSoon ? '*' : ''}}
</strong>
<img class="d-block" purpose="tooltip-icon" src="/images/icon-more-info-14x14@2x.png" alt="More info" @click="clickOpenMobileTooltip(feature)" v-if="feature.description">
</div>
<div class="d-flex flex-row justify-content-between align-items-center">
Free
<img class="d-block" alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png" v-if="feature.tier === 'Free'">
</div>
<div purpose="striped-row" class="d-flex flex-row justify-content-between align-items-center">
Premium
<img class="d-block" alt="checkmark" purpose="checkmark" src="/images/icon-checkmark-green-16x16@2x.png">
</div>
</div>
</div>
<p style="color: #515774;" class="d-block d-md-none mb-0 w-100">* Coming soon</p>
<div purpose="truncated-features-fade">
</div>
</div>
<div class="d-flex flex-row justify-content-center"><a :class="[showExpandedTable ? 'expanded' : '']" @click="showExpandedTable = !showExpandedTable" purpose="show-all-features-button">Show all features<span></span></a></div>
</div>
<%// Bottom call to action %>
<div purpose="faq" class="d-flex flex-column flex-md-row justify-content-center">
<div purpose="faq-header">
<h2>Frequently <br>asked questions</h2>
</div>
<div purpose="accordion" class="d-flex flex-column justify-content-start">
<div purpose="accordion-body">
<div purpose="accordion-item" class="mt-md-0">
<p purpose="accordion-header" id="accordion__header1" style="cursor: pointer;" class="accordion" data-toggle="collapse" data-target="#accordion__body1" aria-controls="accordion__body1">
<%
// ███████╗ █████╗ ██████╗ ██████╗ ██╗
// ██╔════╝██╔══██╗██╔═══██╗ ██╔═══██╗███║
// █████╗ ███████║██║ ██║ ██║ ██║╚██║
// ██╔══╝ ██╔══██║██║▄▄ ██║ ██║▄▄ ██║ ██║
// ██║ ██║ ██║╚██████╔╝ ╚██████╔╝ ██║
// ╚═╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚══▀▀═╝ ╚═╝
%>
Parts of the UI are unfamiliar to us. Is this too far out of my team's comfort zone?
<span class="fa fa-angle-down"></span>
</p>
<p purpose="faq-answer" id="accordion__body1" class="collapse" aria-labelledby="accordion__header1">
<%
// ███████╗ █████╗ ██████╗ █████╗ ██╗
// ██╔════╝██╔══██╗██╔═══██╗ ██╔══██╗███║
// █████╗ ███████║██║ ██║ ███████║╚██║
// ██╔══╝ ██╔══██║██║▄▄ ██║ ██╔══██║ ██║
// ██║ ██║ ██║╚██████╔╝ ██║ ██║ ██║
// ╚═╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚═╝ ╚═╝ ╚═╝
%>
You already know how to manage the operating system. In Fleet, you can focus on managing {{ bowser.windows ? 'Windows, Apple' : 'Apple, Windows'}} and Linux; not "Android MDM", "Apple MDM", "config management", etc.<br/><br/>
Fleet has run over 50 workshops globally with a certification program that trains admins to be effective using gitops/infrastructure as code (with zero previous experience) in only a few hours. Check out <a href="/gitops-workshop">upcoming workshops</a> in a city near you, or <a href="/contact">let us know</a> where we should go next!
</p>
</div>
<div purpose="accordion-item">
<p purpose="accordion-header" id="accordion__header2" style="cursor: pointer;" class="accordion" data-toggle="collapse" data-target="#accordion__body2" aria-controls="accordion__body2">
<%
// ███████╗ █████╗ ██████╗ ██████╗ ██████╗
// ██╔════╝██╔══██╗██╔═══██╗ ██╔═══██╗╚════██╗
// █████╗ ███████║██║ ██║ ██║ ██║ █████╔╝
// ██╔══╝ ██╔══██║██║▄▄ ██║ ██║▄▄ ██║██╔═══╝
// ██║ ██║ ██║╚██████╔╝ ╚██████╔╝███████╗
// ╚═╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚══▀▀═╝ ╚══════╝
%>
Fleet is perfect, it's just missing this one feature...
<span class="fa fa-angle-down"></span>
</p>
<p purpose="faq-answer" id="accordion__body2" class="collapse" aria-labelledby="accordion__header2">
<%
// ███████╗ █████╗ ██████╗ █████╗ ██████╗
// ██╔════╝██╔══██╗██╔═══██╗ ██╔══██╗╚════██╗
// █████╗ ███████║██║ ██║ ███████║ █████╔╝
// ██╔══╝ ██╔══██║██║▄▄ ██║ ██╔══██║██╔═══╝
// ██║ ██║ ██║╚██████╔╝ ██║ ██║███████╗
// ╚═╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚═╝ ╚═╝╚══════╝
%>
If you haven't checked back in a few months, you might take it for a spin. We're moving <a href="/releases">pretty fast</a>, and at Fleet, <a href="/handbook/company#open-source">everyone can contribute</a>.
</p>
</div>
<div purpose="accordion-item">
<p purpose="accordion-header" id="accordion__header3" style="cursor: pointer;" class="accordion" data-toggle="collapse" data-target="#accordion__body3" aria-controls="accordion__body3">
<%
// ███████╗ █████╗ ██████╗ ██████╗ ██████╗
// ██╔════╝██╔══██╗██╔═══██╗ ██╔═══██╗╚════██╗
// █████╗ ███████║██║ ██║ ██║ ██║ █████╔╝
// ██╔══╝ ██╔══██║██║▄▄ ██║ ██║▄▄ ██║ ╚═══██╗
// ██║ ██║ ██║╚██████╔╝ ╚██████╔╝██████╔╝
// ╚═╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚══▀▀═╝ ╚═════╝
%>
What actually is Fleet? Was it purpose built for this kind of thing?
<span class="fa fa-angle-down"></span>
</p>
<p purpose="faq-answer" id="accordion__body3" class="collapse" aria-labelledby="accordion__header3">
<%
// ███████╗ █████╗ ██████╗ █████╗ ██████╗
// ██╔════╝██╔══██╗██╔═══██╗ ██╔══██╗╚════██╗
// █████╗ ███████║██║ ██║ ███████║ █████╔╝
// ██╔══╝ ██╔══██║██║▄▄ ██║ ██╔══██║ ╚═══██╗
// ██║ ██║ ██║╚██████╔╝ ██║ ██║██████╔╝
// ╚═╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚═╝ ╚═╝╚═════╝
%>
Fleet <a href="https://fleetdm.com/handbook/company#history">started as an osquery management server</a>. After 10 years of production osquery use at scale in huge organizations, Fleet added "write" and "execute" device management capabilities, with all the necessary integrations to be comparable with other device management platforms like Jamf, Omnissa (fka WS1, fka Airwatch), Microsoft Intune, and more. Today, Fleet is used by <a href="/customers">customers in 90 countries</a> and in homelabs all over the world.
</p>
</div>
</div>
<div class="d-flex flex-row justify-content-start">
<p purpose="contact-note">Couldnt find an answer? <a href="/docs/get-started/faq">Read the FAQ</a> or <a href="/contact">talk to an engineer</a>.</p>
</div>
</div>
</div>
</div>
<modal purpose="mobile-tooltip" v-if="modal === 'mobileTooltip'" @close="closeModal()">
<div>
<p class="mb-0">{{selectedFeature.description}}</p>
<a :href="selectedFeature.documentationUrl" target="_blank" v-if="selectedFeature.documentationUrl" no-icon>Learn more</a>
</div>
</modal>
<p style="opacity: 0; line-height: 0px; font-size: 0px; margin: 0;">537c652d-cb1a-440e-ae35-0f0bf5743e75</p>
</div>
<%- /* Expose locals as `window.SAILS_LOCALS` :: */ exposeLocalsToBrowser() %>