From c5a60c7523d84f43fedabd23f34a80f9b7de4565 Mon Sep 17 00:00:00 2001 From: Juri Date: Wed, 20 Nov 2024 11:16:29 +0100 Subject: [PATCH 1/6] feat(nx-dev): update top-level navbar --- nx-dev/ui-common/src/lib/headers/header.tsx | 48 +++++++++++++++------ 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/nx-dev/ui-common/src/lib/headers/header.tsx b/nx-dev/ui-common/src/lib/headers/header.tsx index 64739266cf7af..3e4f4cc2c20f8 100644 --- a/nx-dev/ui-common/src/lib/headers/header.tsx +++ b/nx-dev/ui-common/src/lib/headers/header.tsx @@ -70,7 +70,7 @@ export function Header(): JSX.Element { >

Main navigation

{/*FEATURES*/} - + {/* {({ open }) => ( <> )} - + */} {/*SOLUTIONS*/} - + {/* {({ open }) => ( <> )} - + */} Blog - - CI Pricing - {/*RESOURCES*/} {({ open }) => ( @@ -222,6 +214,38 @@ export function Header(): JSX.Element { )} + + Nx Cloud + + + Pricing + + + Powerpack + + + Enterprise +
From 8d757535fc773432fa941699a6ac787b10cf3099 Mon Sep 17 00:00:00 2001 From: Juri Date: Wed, 20 Nov 2024 11:28:15 +0100 Subject: [PATCH 2/6] feat(nx-dev): navbar - victor proposal --- nx-dev/ui-common/src/lib/headers/header.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nx-dev/ui-common/src/lib/headers/header.tsx b/nx-dev/ui-common/src/lib/headers/header.tsx index 3e4f4cc2c20f8..69bf18ccf6208 100644 --- a/nx-dev/ui-common/src/lib/headers/header.tsx +++ b/nx-dev/ui-common/src/lib/headers/header.tsx @@ -214,6 +214,7 @@ export function Header(): JSX.Element { )} +
Pricing +
Date: Wed, 20 Nov 2024 12:04:51 +0100 Subject: [PATCH 3/6] feat(nx-dev): draft new navbar --- nx-dev/ui-common/src/index.ts | 4 +- .../src/lib/headers/documentation-header.tsx | 4 +- nx-dev/ui-common/src/lib/headers/header.tsx | 125 +++++++++++------- .../ui-common/src/lib/headers/menu-items.ts | 83 +++++++++++- 4 files changed, 161 insertions(+), 55 deletions(-) diff --git a/nx-dev/ui-common/src/index.ts b/nx-dev/ui-common/src/index.ts index 9f850a6020323..c1bcaa98ca851 100644 --- a/nx-dev/ui-common/src/index.ts +++ b/nx-dev/ui-common/src/index.ts @@ -25,12 +25,12 @@ export * from './lib/square-dotted-pattern'; export * from './lib/live-stream-notifier'; export { resourceMenuItems } from './lib/headers/menu-items'; -export { solutionsMenuItems } from './lib/headers/menu-items'; +export { productsMenuItems as solutionsMenuItems } from './lib/headers/menu-items'; export { eventItems } from './lib/headers/menu-items'; export { learnItems } from './lib/headers/menu-items'; export { companyItems } from './lib/headers/menu-items'; export type { MenuItem } from './lib/headers/menu-items'; -export { solutions as plans } from './lib/headers/menu-items'; +export { ossProducts as plans } from './lib/headers/menu-items'; export { featuresItems } from './lib/headers/menu-items'; export { DefaultMenuItem } from './lib/headers/default-menu-item'; export { MobileMenuItem } from './lib/headers/mobile-menu-item'; diff --git a/nx-dev/ui-common/src/lib/headers/documentation-header.tsx b/nx-dev/ui-common/src/lib/headers/documentation-header.tsx index dc9ef5ddcbefd..1466a97bd2df0 100644 --- a/nx-dev/ui-common/src/lib/headers/documentation-header.tsx +++ b/nx-dev/ui-common/src/lib/headers/documentation-header.tsx @@ -15,7 +15,7 @@ import { TwoColumnsMenu } from './two-columns-menu'; import { featuresItems, resourceMenuItems, - solutionsMenuItems, + productsMenuItems, } from './menu-items'; import { SectionsMenu } from './sections-menu'; import { DiscordIcon } from '../discord-icon'; @@ -307,7 +307,7 @@ export function DocumentationHeader({ leaveTo="opacity-0 translate-y-1" > - + diff --git a/nx-dev/ui-common/src/lib/headers/header.tsx b/nx-dev/ui-common/src/lib/headers/header.tsx index 69bf18ccf6208..2cb2c683f5768 100644 --- a/nx-dev/ui-common/src/lib/headers/header.tsx +++ b/nx-dev/ui-common/src/lib/headers/header.tsx @@ -14,9 +14,10 @@ import { eventItems, featuresItems, learnItems, - solutions, + ossProducts, resourceMenuItems, - solutionsMenuItems, + productsMenuItems, + enterpriseResourcesMenuItems, } from './menu-items'; import { MobileMenuItem } from './mobile-menu-item'; import { SectionsMenu } from './sections-menu'; @@ -113,8 +114,65 @@ export function Header(): JSX.Element { )} */} + + Docs + + + Blog + + {/*RESOURCES*/} + + {({ open }) => ( + <> + + + Resources + + + + + + + + + + )} + +
{/*SOLUTIONS*/} - {/* + {({ open }) => ( <> - Solutions + Products - + )} - */} - - Docs - - - Blog - - {/*RESOURCES*/} + {({ open }) => ( <> @@ -184,8 +225,13 @@ export function Header(): JSX.Element { 'group inline-flex items-center px-3 py-2 font-medium leading-tight outline-0 dark:text-slate-200' )} > - - Resources + + Explore - - + + )} -
- - Nx Cloud - - Pricing - -
- - Powerpack + CI Pricing Enterprise +
@@ -459,7 +488,7 @@ export function Header(): JSX.Element { /> - {solutions.map((item) => ( + {ossProducts.map((item) => ( = { }, ], }; -export const solutions: MenuItem[] = [ +export const ossProducts: MenuItem[] = [ + { + name: 'Nx', + description: + 'End-to-end solution for smart, efficient and maintainable CI.', + href: '/docs', + icon: null, + isNew: false, + isHighlight: false, + }, + { + name: 'Nx Console', + description: + 'A suite of paid extensions for the Nx CLI specifically designed for enterprises.', + href: '/getting-started/editor-setup', + icon: null, + isNew: false, + isHighlight: false, + }, +]; + +export const enterpriseProducts: MenuItem[] = [ { name: 'Nx Cloud', description: @@ -258,8 +280,9 @@ export const companyItems: MenuItem[] = [ isHighlight: false, }, ]; -export const solutionsMenuItems = { - 'Helping you grow': solutions, +export const productsMenuItems = { + 'Open Source': ossProducts, + Enterprises: enterpriseProducts, // 'Use cases': useCaseItems }; export const resourceMenuItems = { @@ -267,3 +290,57 @@ export const resourceMenuItems = { Events: eventItems, Company: companyItems, }; + +// Add new sections for enterprise resources +export const caseStudiesItems: MenuItem[] = [ + { + name: 'Banking Case Study', + description: 'See how a $7B bank saved money and reduced CI times by 62%.', + href: '/case-studies/migrations', + icon: ArrowUpCircleIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Financial Institution Case Study', + description: + '$28B Fortune 500 financial institution reduces CI times by 79% with Nx Cloud.', + href: '/case-studies/ci-cd', + icon: BoltIcon, + isNew: false, + isHighlight: false, + }, +]; + +export const customerStoriesItems: MenuItem[] = [ + { + name: 'How we help enterprises succeed', + description: 'How we collaborate with enterprises to help them succeed.', + href: '/customer-stories/testimonials', + icon: BookOpenIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Video Testimonials', + description: 'Stories from our enterprise customers.', + href: '/customer-stories/testimonials', + icon: UserGroupIcon, + isNew: false, + isHighlight: false, + }, + { + name: 'Our Customers', + description: 'How large enterprises leverage Nx at scale.', + href: '/customers', + icon: BuildingOfficeIcon, + isNew: false, + isHighlight: false, + }, +]; + +// Add the new menu sections +export const enterpriseResourcesMenuItems = { + 'Case Studies': caseStudiesItems, + Stories: customerStoriesItems, +}; From 7803723997a35dd89b230e9f257a019f577ae0a4 Mon Sep 17 00:00:00 2001 From: Juri Date: Thu, 21 Nov 2024 12:25:20 +0100 Subject: [PATCH 4/6] feat(nx-dev): adjust labels on pricing page --- nx-dev/ui-pricing/src/lib/plans-display.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nx-dev/ui-pricing/src/lib/plans-display.tsx b/nx-dev/ui-pricing/src/lib/plans-display.tsx index 945b5312f0c98..bcf9ded06fbde 100644 --- a/nx-dev/ui-pricing/src/lib/plans-display.tsx +++ b/nx-dev/ui-pricing/src/lib/plans-display.tsx @@ -57,7 +57,7 @@ export function PlansDisplay(): ReactElement { } className="w-full" > - Get started + Start for free
    @@ -161,7 +161,7 @@ export function PlansDisplay(): ReactElement { } className="w-full" > - Get started + $0 to start
    @@ -280,7 +280,7 @@ export function PlansDisplay(): ReactElement { } className="w-full" > - Learn more + Request a trial
    From b9f9b66a22c6ce02b9772d5f68caba409cb26280 Mon Sep 17 00:00:00 2001 From: Juri Date: Thu, 21 Nov 2024 12:57:11 +0100 Subject: [PATCH 5/6] feat(nx-dev): make request trial more apparent --- nx-dev/ui-cloud/src/lib/hero.tsx | 2 +- nx-dev/ui-common/src/lib/headers/header.tsx | 14 ++++++++++++-- nx-dev/ui-enterprise/src/lib/hero.tsx | 16 ++++++++++++---- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/nx-dev/ui-cloud/src/lib/hero.tsx b/nx-dev/ui-cloud/src/lib/hero.tsx index 7740cbfeb0e9c..cfe7c9638ad0b 100644 --- a/nx-dev/ui-cloud/src/lib/hero.tsx +++ b/nx-dev/ui-cloud/src/lib/hero.tsx @@ -31,7 +31,7 @@ export function Hero(): JSX.Element { variant="primary" size="default" > - Get started + Get started for free
From 71abe5172de03d4f7b3b67f5bac102831040c9a1 Mon Sep 17 00:00:00 2001 From: Juri Date: Thu, 21 Nov 2024 13:08:13 +0100 Subject: [PATCH 6/6] feat(nx-dev): make navbar configurable --- nx-dev/nx-dev/app/pricing/page.tsx | 19 +++++- nx-dev/nx-dev/pages/enterprise.tsx | 12 +++- nx-dev/ui-common/src/lib/default-layout.tsx | 6 +- nx-dev/ui-common/src/lib/headers/header.tsx | 68 ++++++++++++--------- 4 files changed, 71 insertions(+), 34 deletions(-) diff --git a/nx-dev/nx-dev/app/pricing/page.tsx b/nx-dev/nx-dev/app/pricing/page.tsx index ccea644bc7f32..4fda072e0e58f 100644 --- a/nx-dev/nx-dev/app/pricing/page.tsx +++ b/nx-dev/nx-dev/app/pricing/page.tsx @@ -38,7 +38,24 @@ export const metadata: Metadata = { export default function PricingPage() { return ( - + Try Nx Cloud for free, + }, + { + href: '/contact', + variant: 'secondary', + size: 'small', + title: 'Contact us', + children: Contact us, + }, + ]} + >
diff --git a/nx-dev/nx-dev/pages/enterprise.tsx b/nx-dev/nx-dev/pages/enterprise.tsx index 3d663433c2478..97a5b0ad005de 100644 --- a/nx-dev/nx-dev/pages/enterprise.tsx +++ b/nx-dev/nx-dev/pages/enterprise.tsx @@ -40,7 +40,17 @@ export function Enterprise(): JSX.Element { type: 'website', }} /> - + Request a free trial, + }, + ]} + >
diff --git a/nx-dev/ui-common/src/lib/default-layout.tsx b/nx-dev/ui-common/src/lib/default-layout.tsx index 67e131d9e8772..a27b48018de99 100644 --- a/nx-dev/ui-common/src/lib/default-layout.tsx +++ b/nx-dev/ui-common/src/lib/default-layout.tsx @@ -1,21 +1,23 @@ import { Footer } from './footer'; import { Header } from './headers/header'; import { PropsWithChildren } from 'react'; -import cx from 'classnames'; +import { ButtonLinkProps } from './button'; export function DefaultLayout({ isHome = false, children, hideHeader = false, hideFooter = false, + headerCTAConfig, }: { isHome?: boolean; hideHeader?: boolean; hideFooter?: boolean; + headerCTAConfig?: ButtonLinkProps[]; } & PropsWithChildren): JSX.Element { return (
- {!hideHeader &&
} + {!hideHeader &&
}
Try Nx Cloud for free, + }, + { + href: 'https://cloud.nx.app', + variant: 'secondary', + size: 'small', + target: '_blank', + title: 'Log in to your Nx Cloud Account', + children: ( + <> +