18 Commits
Author SHA1 Message Date
Eric 5cefa9d5bb Website: use git to get lastModifiedAt timestamps for markdown and yaml files, show last updated date on article pages (#48918)
Changes:
- Updated the "Test Fleet website" and "Deploy Fleet website" workflows
to include the full git history when checking out the repo.
- Updated the website's build-static-content script to use git to build
lastModifiedAt timestamps for Markdown and YAML files on the website.
- Updated the article template page and article category pages to show a
timestamp of when an article's Markdown file was last changed, if it was
updated >3 days after it was published.

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

* **New Features**
* Articles now conditionally display an **Updated** timestamp when they
were substantially modified after publication.
* The **Updated** indicator is shown on both article listing pages and
individual article pages (including mobile/desktop headers).

* **Bug Fixes**
* Timestamp rendering is now more consistent, helping readers
distinguish original publish dates from later edits.

* **Styling**
* Added styling to support the new “updated timestamp” label and
timestamp formatting within article cards.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-09 13:18:56 -05:00
Mike ThomasandEric b6e0cac4ae Website retire old success stories (#48921)
Retires old success stories and redirects `/success-stories` to
`/customers`.

@eashaw, is there anything else / different that needs to be done to
retire these old pages? I suspect there will still be some article
category artifacts hanging around.

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

* **Bug Fixes**
* Updated story-related redirects so visitors are sent to the customers
page instead of older story URLs.
* Fixed deprecated device-management “fleet user story” links to land on
the customers page.
* Adjusted article page metadata and category resolution so the “success
stories” category no longer uses the previous titles/descriptions or
friendly-name mapping.
* **Chores**
* Updated static-content build rules for allowed category values and
adjusted how certain category URL prefixes are generated.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-07-08 07:29:30 -05:00
Eric 07d84b14c0 Website: add article category page for webinars (#45660)
Closes: https://github.com/fleetdm/confidential/issues/15702

Changes:
- Added /webinars, an article category page for webinar articles
- Added a link to the /webinars to the sidebar on the article category
pages.
- Removed webinar articles from the "Blog" category

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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added a dedicated Webinars section with a new navigation link in the
articles sidebar.
* Webinars are now displayed separately from other article content
types.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45660?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-15 17:55:50 -05:00
Eric 1e2c3891e4 Website: exclude whitepaper articles from blog category page (#43980)
Closes: https://github.com/fleetdm/fleet/issues/43953

Changes:
- Updated the article category template page's view action to exclude
whitepaper articles from the "Blog" category
2026-04-22 13:42:16 -05:00
Eric 46bc7dc880 Website: add whitepaper article template page (#41405)
Changes:
- Updated `build-static-content` to support a new article category:
`whitepaper`
- Added a new article template page: `basic-whitepaper.ejs`.
- Added `deliver-whitepaper-download-request`, an action that
creates/updates a contact and account in the CRM and creates a
historical event when a user submits a form to download a whitepaper.
- Updated the "News" link in the website's header navigation to be
"Resources / Blog", and changed the link to /articles
- Added a link to the whitepapers category page (/whitepapers) to the
side bar navigation on article category pages
- Added a whitepaper article: "Modern endpoint management: Managing
devices as code"
2026-03-11 12:37:23 -05:00
Eric b52b067ea2 Website: follow-up changes from website review session (#39200)
Changes:
- Updated the category for comparison articles (`compare` »
`comparison`)
- Updated article meta tag validation and how URLS of comparison
articles are built
- Updated the view action for comparison articles to set a meta title
and description
2026-02-02 17:46:35 -06:00
Eric cf2411e40a Website: update article category name (#38900)
Changes:
- updated the name of the catch all article category on the website
(blogs » blog)
2026-01-28 10:01:57 -06:00
EricandMike Thomas e65035a5d9 Website: add comparison article template and comparison article (#38893)
Closes: https://github.com/fleetdm/confidential/issues/13291

Changes:
- Updated the `build-static-content` script to add support for a new
article category: `compare`
- Added a new template page for comparison articles
- Added a Fleet vs. Jamf comparison article

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-01-28 22:04:09 +09:00
Eric 4cae77302a Website: update article category page (#38707)
Related to: https://github.com/fleetdm/confidential/issues/13527

Changes:
- Changed the name of the /articles page to "Blogs"
- Updated the blogs category to exclude guides
- Added a link to /guides to the sidebar on article category pages
2026-01-23 16:48:43 -06:00
Eric 7e678509be Website: update /releases, /announcements, and /guides article category pages (#27048)
Closes: #26203 

Changes:
- Updated the article category page for release posts, announcements,
and guides to match the latest wireframes
2025-03-13 17:52:36 -05:00
Eric 1eae4f6e1b Website split article page routes (#25149)
Closes: #23904

Changes:
- Replaced the regex routes that handle articles and article category
pages to have a separate route for each category
- Updated the build-static-content script to transform periods in
article filenames into dashes
- Added redirects for articles that have a changed URL
2025-01-07 11:43:36 -06:00
EricandMike Thomas cb2c266774 Website: update guides category page (#21859)
Closes: #21798

Changes:
- Updated the layout and styles for the /guides page.
- Upgraded the version of DocSearch the website uses

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2024-09-06 10:45:01 +09:00
Eric fbf1f55399 Website: Remove duplicate "Fleet" from page titles (#20893)
Changes:
- Removed the duplicate "Fleet" from page titles.
2024-07-31 14:50:42 -05:00
Mike ThomasandEric e80d1ac717 Website update page titles and descriptions (#15645)
Closes https://github.com/fleetdm/fleet/issues/15615

_I'm sorry, I should have split this into separate PRs. I was trying to
move fast, but I didn't consider how awkward to review this PR would
become._

- Updated page titles and descriptions for:
- Homepage (no change to description. Currently set to the default blurb
from "Why Fleet doc."
    - `/pricing`
    - `/integrations`
    - `/vulnerability-management`
    - `/endpoint-ops`
- `/device-management` (I'm not super happy with this one. I tried to
summarize everything, but I think it's too long. I probably need to
rewrite it in a fast follow PR)
- Renamed `/osquery-management` to `/endpoint-ops` and set up redirect
- Removed `/compliance` (Note: I did not remove the compliance feature
images as they are referenced in various /imagine land pages. I need to
confirm whether those imagine pages are used in active ads?)

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2023-12-15 08:06:31 +09:00
EricandMike Thomas 5de5bfb02c Website: update meta descriptions (#12537)
Closes: #12492
closes: #12494

Changes:
- Added meta descriptions and titles to our article category pages
(e.g., fleetdm.com/releases)
- Added meta description and title to the /support, /try-fleet/register,
and /try-fleet/login
- Updated the meta description on /device-management

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2023-06-29 10:28:04 -05:00
EricandMike McNeil 874ca7bc8a Website: Update masthead (#9782)
Closes: https://github.com/fleetdm/fleet/issues/9762

Changes:
- `routes.js`: Changed the `currentPage` local variable to
`currentSection` and updated the value based each on the dropdown
navigation menus in the website header. This variable is used to make a
section "active" in the header.
- `view-basic-article` & `view-articles`: Updated these view actions to
set a `currentSection` variable based on the Markdown article category.
- `Layout.less`: Updated styles to match wireframes
- `layout.ejs`: Updated the styles and layout of the website header to
match wireframes.
- `layout-landing.ejs`, `layout-sandbox.ejs` & `layout-customer.ejs`:
Updated to match wireframes and stylesheet changes.
- `basic-documentation.less`: adjusted the position of the sticky right
sidebar.

---------

Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2023-02-10 18:33:12 -06:00
EricandMike McNeil 7974bdfa80 Website: Fleet Sandbox (#6380)
* create pages, add routes, update policies

* add new pages to importer

* sandbox page

* login -> sandbox-login

* Update login.less

* psuedo-code/code comments

* remove sandbox page

* Revert "remove sandbox page"

This reverts commit d5a1280759266f6bf587c9bab275d1a3e69ec16a.

* view action drafts

* delete forgot-password page

* two new actions + draft code

* change action name

* Draft view actions and page scripts

* Update signup.js

* update comments

* update signup & sandbox-login page script

* update helper comments

* update helper usage in comments

* view-sandbox » view-sandbox-or-redirect

* Update helpers, actions, and routes

* login » sandbox-login

* update attributes on user model

* update signup action

* update page scripts and importer

* Update view-register.js

* html + css

* update signup and view-sandbox-or-redirect

* Password reset

Update user's sandbox password when they have a sandbox instance

* add new-sandbox, update sandbox page

- `/try-fleet/new-sandbox` added for users who don't have an existing Fleet Sandbox instance,
- `/sandbox` updated to redirect users to the `/demologin` endpoint of their Fleet Sandbox instance if it is still valid, or display the sandbox expired state
-  updated policies & routes

* layout and importer updates

* update sandbox-login links & page script

* update signup action

* change logout redirect location to homepage

* lint fixes

* lint fixes

* Update sandbox & sandbox-expired

* Comment updates

* update password requirements for existing pages

* remove /get-started route

* lint fixes

* replace env variable with url

* remove `required: false` from organization attribute on user model

* send redirectToSandbox from view instead of routes

* changes sandbox page name

* add 10 second timeout to /healthz check, add authorization header to cloud provisioner request

* update environment variable name

* update authorization header

* remove /new-sandbox

* update unauthorized response to redirect to correct login screen

* update comments

* update layout

* replace new-sandbox redirects with consistency violation errors

* Provision Fleet sandbox for users logging in

* Revert "Provision Fleet sandbox for users logging in"

This reverts commit 6297c33892231d0ef98bed4cbb127f4263ebc48d.

* Revert "Revert "Provision Fleet sandbox for users logging in""

This reverts commit c2a2567b68325ea92e19f908226de2f52d8265f9.

* Revert "Revert "Revert "Provision Fleet sandbox for users logging in"""

This reverts commit acc178ea76ece637f7f6eab9f44ee51c44f59a00.

* update sandbox-login mobile styles

* update sandbox-expired page to match latest wireframes

* remove required: false and planned changes comments, update signup errors and behavior

* update error

* lint fix on updated error

* Update error's indentation

* remove added forgot-password flow, add redirect for sandbox users changing their password

* Use fleetSandboxDemoKey to login to Fleet Sandbox, remove password changing flow

* update bootstrap to give admin user an expired sandbox

* Update signup.js

* remove unused exits, revert password recovery email changes

* required:false is implied if unspecified, so can be omitted

* Remove defaultsTo: '', since it is not needed

This applies the changes discussed in https://github.com/fleetdm/fleet/pull/6380#discussion_r929538495

It also makes two other trivial changes.

* Eliminate another unnecessary require:false

I think this one is actually baked into the sails-generate template.

* remove custom password validation

* update page name (sandbox-teleporter) and view action name

* revert minor changes to existing files

* update sandbox login friendlyName

* Update unauthorized response to redirect to /login

* Delete new-sandbox.less

* update layouts and importer

* add /fleetctl-preview route for old get-started page, update sandbox route

* update signup action with changes from review, add retry() to cloud provisioner request

* Update routes.js

* add missing comma to route

* update layout, fix typo in signup

* Update sandbox-expired.ejs

* lint fixes

* Update download-sitemap.js

* small whitespace changes, regenerate cloud-sdk

* remove placeholder text in password inputs

* add loading spinner to sandbox teleporter

* add logout button to header nav

* hide header on sandbox-teleporter

* update errors, check if a user already exists before cloud provisioner request

* Update sandbox-teleporter.page.js

* Update sandbox-teleporter.page.js

* Update signup.js

* resize loading spinner, history.pushState() » history.replaceState()

* send users who reset their password back to the fleetdm.com homepage

* Add Zapier webhook request for sandbox signups

* rebuild-scloud-sdk after resolving merge conflict

* update zapier request error

* Add comment w/ context about how Zapier responds with a 2xx even if there was a problem

* Update links to /get-started to go to /try-fleet/register, change /get-started redirect

* Revert changes to links

* add /test-fleet-sandbox redirect, revert /try-fleet redirect

* send logged out users to the sandbox login page when they go to /try-fleet/sandbox

Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2022-08-12 17:31:01 -05:00
EricandMike Thomas f713668390 Website: Add article landing and category pages (#5428)
* articles page

* update articles route to handle category urls

* update articles page

* add articleImageUrl meta tags to article pages

* basic empty state, add comments

* Update view-articles.js

* Update articles.less

* add articles, update styles and image url validation

* lint fix

* Update routes.js

* Update articles.ejs

* Update articles.page.js

Updated article category descriptions.

* migrated more articles

I migrated more articles so that all categories are populated.

* Added thumbnails to new posts

* Some style tweaks

- Tweaked a couple of styles
- Added cursor: pointer to filters
- Changed "Blog" to "Articles" in the navigation
- Changed /blog to /articles in the navigation

Co-authored-by: Mike Thomas <mthomas@fleetdm.com>
2022-04-28 15:16:07 +09:00