Skip to content

Commit d30a84f

Browse files
authored
feat(nx-dev): add trial pages for Powerpack and Enterprise, update contact sales team page (#29554)
1 parent dbdb72a commit d30a84f

File tree

22 files changed

+531
-45
lines changed

22 files changed

+531
-45
lines changed

nx-dev/nx-dev/app/powerpack/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import {
55
Hero,
66
PowerpackFeatures,
77
} from '@nx/nx-dev/ui-powerpack';
8-
import { contactButton } from '../../lib/components/headerCtaConfigs';
98

109
import type { Metadata } from 'next';
10+
import { type ReactElement } from 'react';
1111

1212
export const metadata: Metadata = {
1313
title: 'Nx Powerpack',
@@ -32,10 +32,10 @@ export const metadata: Metadata = {
3232
},
3333
};
3434

35-
export default function NxPowerPackPage(): JSX.Element {
35+
export default function NxPowerPackPage(): ReactElement {
3636
const headerCTAConfig: ButtonLinkProps[] = [
3737
{
38-
href: 'https://cloud.nx.app/powerpack/purchase?licenseBusinessType=small&utm_source=nx.dev&utm_medium=referral&utm_campaign=nx-powerpackurl',
38+
href: '/powerpack/trial',
3939
variant: 'primary',
4040
size: 'small',
4141
title: 'Request a free trial',

nx-dev/nx-dev/lib/components/headerCtaConfigs.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ButtonLinkProps } from '@nx/nx-dev/ui-common';
22
import { NxCloudAnimatedIcon } from '@nx/nx-dev/ui-icons';
33

44
export const requestFreeTrial: ButtonLinkProps = {
5-
href: '/contact/sales',
5+
href: '/enterprise/trial',
66
variant: 'primary',
77
size: 'small',
88
title: 'Request a free trial',

nx-dev/nx-dev/pages/contact/sales.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
import { useRouter } from 'next/router';
22
import { NextSeo } from 'next-seo';
33
import { Footer, Header } from '@nx/nx-dev/ui-common';
4-
import { TalkToOurSalesTeam } from '@nx/nx-dev/ui-contact';
4+
import { TalkToOurTeam } from '@nx/nx-dev/ui-contact';
5+
import { type ReactElement } from 'react';
56

6-
export function ContactSales(): JSX.Element {
7+
export function ContactSales(): ReactElement {
78
const router = useRouter();
89

910
return (
1011
<>
1112
<NextSeo
12-
title="Talk to our Sales team"
13-
description="We’re here to help you find the right plan and pricing for your needs and discuss how Nx Cloud Enterprise can drive better business outcomes for your organization."
13+
title="Contact Nx Sales – Discover the Best Solution for Your Team"
14+
description="Get in touch with Nx experts to learn how we can optimize your development workflow. Whether you're scaling up or seeking enhanced CI performance, our team is here to help."
1415
openGraph={{
1516
url: 'https://nx.dev' + router.asPath,
16-
title: 'Talk to our Sales team',
17+
title: 'Contact Nx Sales – Discover the Best Solution for Your Team',
1718
description:
18-
'We’re here to help you find the right plan and pricing for your needs and discuss how Nx Cloud Enterprise can drive better business outcomes for your organization.',
19+
"Get in touch with Nx experts to learn how we can optimize your development workflow. Whether you're scaling up or seeking enhanced CI performance, our team is here to help.",
1920
images: [
2021
{
2122
url: 'https://nx.dev/socials/nx-media.png',
@@ -32,7 +33,7 @@ export function ContactSales(): JSX.Element {
3233
<Header />
3334
<main id="main" role="main" className="py-24 lg:py-32">
3435
<div>
35-
<TalkToOurSalesTeam />
36+
<TalkToOurTeam />
3637
</div>
3738
</main>
3839
<Footer />

nx-dev/nx-dev/pages/enterprise.tsx renamed to nx-dev/nx-dev/pages/enterprise/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
TestimonialCarousel,
1515
VmwareTestimonial,
1616
} from '@nx/nx-dev/ui-enterprise';
17-
import { requestFreeTrial } from '../lib/components/headerCtaConfigs';
17+
import { requestFreeTrial } from '../../lib/components/headerCtaConfigs';
1818
import { ReactElement } from 'react';
1919

2020
export function Enterprise(): ReactElement {
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { useRouter } from 'next/router';
2+
import { NextSeo } from 'next-seo';
3+
import { Footer, Header } from '@nx/nx-dev/ui-common';
4+
import { TrialNxEnterprise } from '@nx/nx-dev/ui-enterprise';
5+
import { type ReactElement } from 'react';
6+
7+
export function EnterpriseTrial(): ReactElement {
8+
const router = useRouter();
9+
10+
return (
11+
<>
12+
<NextSeo
13+
title="Try Nx Enterprise - Scalable CI Solutions for Your Team"
14+
description="Request a free Nx Enterprise trial to experience advanced CI features and premium support, designed to help your team ship faster and more reliably."
15+
openGraph={{
16+
url: 'https://nx.dev' + router.asPath,
17+
title: 'Try Nx Enterprise - Scalable CI Solutions for Your Team',
18+
description:
19+
'Request a free Nx Enterprise trial to experience advanced CI features and premium support, designed to help your team ship faster and more reliably.',
20+
images: [
21+
{
22+
url: 'https://nx.dev/socials/nx-media.png',
23+
width: 800,
24+
height: 421,
25+
alt: 'Nx: Smart Monorepos · Fast CI',
26+
type: 'image/jpeg',
27+
},
28+
],
29+
siteName: 'Nx',
30+
type: 'website',
31+
}}
32+
/>
33+
<Header />
34+
<main id="main" role="main" className="py-24 lg:py-32">
35+
<div>
36+
<TrialNxEnterprise />
37+
</div>
38+
</main>
39+
<Footer />
40+
</>
41+
);
42+
}
43+
44+
export default EnterpriseTrial;
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { useRouter } from 'next/router';
2+
import { NextSeo } from 'next-seo';
3+
import { Footer, Header } from '@nx/nx-dev/ui-common';
4+
import { TrialNxPowerpack } from '@nx/nx-dev/ui-powerpack';
5+
import { type ReactElement } from 'react';
6+
7+
export function PowerpackTrial(): ReactElement {
8+
const router = useRouter();
9+
10+
return (
11+
<>
12+
<NextSeo
13+
title="Start Your Nx Powerpack Trial - Speed and Scale for Monorepos"
14+
description="Unlock self-hosted cache storage, enforce workspace conformance, and manage codeowners for your monorepos. Start your free Nx Powerpack trial today!"
15+
openGraph={{
16+
url: 'https://nx.dev' + router.asPath,
17+
title:
18+
'Start Your Nx Powerpack Trial - Speed and Scale for Monorepos',
19+
description:
20+
'Unlock self-hosted cache storage, enforce workspace conformance, and manage codeowners for your monorepos. Start your free Nx Powerpack trial today!',
21+
images: [
22+
{
23+
url: 'https://nx.dev/socials/nx-media.png',
24+
width: 800,
25+
height: 421,
26+
alt: 'Nx: Smart Monorepos · Fast CI',
27+
type: 'image/jpeg',
28+
},
29+
],
30+
siteName: 'Nx',
31+
type: 'website',
32+
}}
33+
/>
34+
<Header />
35+
<main id="main" role="main" className="py-24 lg:py-32">
36+
<div>
37+
<TrialNxPowerpack />
38+
</div>
39+
</main>
40+
<Footer />
41+
</>
42+
);
43+
}
44+
45+
export default PowerpackTrial;
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
import { useRouter } from 'next/router';
2+
import { NextSeo } from 'next-seo';
3+
import { Footer, Header } from '@nx/nx-dev/ui-common';
4+
import { SectionHeading, HubspotForm } from '@nx/nx-dev/ui-common';
5+
import {
6+
CapitalOneIcon,
7+
CaterpillarIcon,
8+
RoyalBankOfCanadaIcon,
9+
ShopifyIcon,
10+
SiriusxmAlternateIcon,
11+
} from '@nx/nx-dev/ui-icons';
12+
import { type ReactElement } from 'react';
13+
import { ArrowLongRightIcon } from '@heroicons/react/24/outline';
14+
15+
export function WhitePaperFastCI(): ReactElement {
16+
const router = useRouter();
17+
18+
return (
19+
<>
20+
<NextSeo
21+
title="Fast CI for Monorepos - Speed Up Development and Cut Costs"
22+
description="Download our in-depth whitepaper to discover strategies for reducing build times and boosting CI performance. Nx's enterprise-grade tools are built for large, fast-moving teams."
23+
openGraph={{
24+
url: 'https://nx.dev' + router.asPath,
25+
title: 'Fast CI for Monorepos - Speed Up Development and Cut Costs',
26+
description:
27+
"Download our in-depth whitepaper to discover strategies for reducing build times and boosting CI performance. Nx's enterprise-grade tools are built for large, fast-moving teams.",
28+
images: [
29+
{
30+
url: 'https://nx.dev/socials/nx-media.png',
31+
width: 800,
32+
height: 421,
33+
alt: 'Nx: Smart Monorepos · Fast CI',
34+
type: 'image/jpeg',
35+
},
36+
],
37+
siteName: 'Nx',
38+
type: 'website',
39+
}}
40+
/>
41+
<Header />
42+
<main id="main" role="main" className="py-24 lg:py-32">
43+
<div>
44+
<section id="whitepaper-fast-ci">
45+
<div className="mx-auto max-w-7xl px-6 lg:px-8">
46+
<div className="mx-auto max-w-3xl text-center">
47+
<SectionHeading
48+
as="h1"
49+
variant="display"
50+
id="enterprise-ci-reimagined"
51+
>
52+
Enterprise CI, Reimagined
53+
</SectionHeading>
54+
<SectionHeading
55+
as="p"
56+
className="mt-6"
57+
variant="subtitle"
58+
id="enterprise-ci-reimagined"
59+
>
60+
Up to 70% Faster Builds for Monorepos
61+
</SectionHeading>
62+
</div>
63+
<div className="mx-auto mt-16 flex max-w-5xl flex-col gap-12 md:flex-row lg:gap-8">
64+
<section className="flex-1">
65+
<p className="text-lg leading-relaxed">
66+
The world’s moving fast, and getting products to market
67+
feels like a race that keeps speeding up. Monorepos are
68+
transforming development by enhancing collaboration, code
69+
reuse, and team velocity. But, CI that is not tailored for
70+
monorepos can result in slow builds, operational complexity,
71+
increased costs and test bottlenecks.
72+
</p>
73+
<div className="py-10 italic">
74+
<a
75+
target="_blank"
76+
className="group text-lg font-semibold leading-relaxed underline"
77+
href="/assets/enterprise/Fast-CI-Whitepaper.pdf"
78+
>
79+
See how to get fast CI, built for monorepos{' '}
80+
<ArrowLongRightIcon
81+
className="inline-block h-6 w-6 transition group-hover:translate-x-1"
82+
aria-hidden="true"
83+
/>
84+
</a>
85+
<p className="mt-2">(download pdf)</p>
86+
</div>
87+
88+
<figure className="mt-4 rounded-lg bg-slate-100 p-4 pl-8 dark:bg-slate-800">
89+
<blockquote className="text-base/7">
90+
<p>
91+
“The decision to jump to Nx Cloud was really something
92+
we wanted from the beginning. There's nothing but
93+
benefits from it. Nx means tooling and efficiency around
94+
our software development lifecycle that empowers us to
95+
move a lot faster, ship code faster and more reliably.”
96+
</p>
97+
</blockquote>
98+
<figcaption className="mt-6 flex items-center gap-x-4 text-sm/6">
99+
<img
100+
alt="Justin Schwartzenberger"
101+
src="https://avatars.githubusercontent.com/u/1243236?v=4"
102+
className="size-8 flex-none rounded-full"
103+
/>
104+
<div>
105+
<div className="font-semibold">
106+
Justin Schwartzenberger
107+
</div>
108+
<div className="text-slate-500">
109+
Principal Software Engineer, SiriusXM
110+
</div>
111+
</div>
112+
<SiriusxmAlternateIcon
113+
aria-hidden="true"
114+
className="ml-auto size-10 text-[#0000EB]"
115+
/>
116+
</figcaption>
117+
</figure>
118+
<div className="mt-12 grid w-full grid-cols-4 place-items-center gap-2">
119+
<CapitalOneIcon
120+
aria-hidden="true"
121+
className="col-span-1 size-28 text-black dark:text-white"
122+
/>
123+
124+
<CaterpillarIcon
125+
aria-hidden="true"
126+
className="col-span-1 size-14 text-[#FFCD11]"
127+
/>
128+
129+
<RoyalBankOfCanadaIcon
130+
aria-hidden="true"
131+
className="col-span-1 size-14 text-black dark:text-white"
132+
/>
133+
134+
<ShopifyIcon
135+
aria-hidden="true"
136+
className="col-span-1 size-14 text-[#7AB55C]"
137+
/>
138+
</div>
139+
</section>
140+
<section className="flex-1 rounded-xl border border-slate-200 bg-white p-8 md:self-start dark:border-slate-800/40">
141+
<HubspotForm
142+
region="na1"
143+
portalId="2757427"
144+
formId="11eff6d1-791d-454d-a7f8-117ee747bf2a"
145+
noScript={true}
146+
loading={<div>Loading...</div>}
147+
/>
148+
</section>
149+
</div>
150+
</div>
151+
</section>
152+
</div>
153+
</main>
154+
<Footer />
155+
</>
156+
);
157+
}
158+
159+
export default WhitePaperFastCI;
Binary file not shown.
Binary file not shown.

nx-dev/ui-common/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export * from './lib/testimonials';
2424
export * from './lib/square-dotted-pattern';
2525
export * from './lib/live-stream-notifier';
2626
export * from './lib/webinar-notifier';
27+
export * from './lib/hubspot-form';
2728

2829
export { resourceMenuItems } from './lib/headers/menu-items';
2930
export { eventItems } from './lib/headers/menu-items';

nx-dev/ui-contact/src/lib/hubspot-form.tsx renamed to nx-dev/ui-common/src/lib/hubspot-form.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
'use client';
12
import { Component } from 'react';
23

34
/**

nx-dev/ui-contact/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export * from './lib/contact-links';
22
export * from './lib/how-can-we-help';
3-
export * from './lib/talk-to-our-sales-team';
3+
export * from './lib/talk-to-our-team';
44
export * from './lib/talk-to-our-engineering-team';

nx-dev/ui-contact/src/lib/talk-to-our-engineering-team.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { SectionHeading } from '@nx/nx-dev/ui-common';
2-
import { HubspotForm } from './hubspot-form';
3-
import { ReactElement } from 'react';
1+
import { SectionHeading, HubspotForm } from '@nx/nx-dev/ui-common';
2+
import { type ReactElement } from 'react';
43
import {
54
CapitalOneIcon,
65
CaterpillarIcon,
@@ -22,8 +21,8 @@ export function TalkToOurEngineeringTeam(): ReactElement {
2221
Talk to our engineering team
2322
</SectionHeading>
2423
</div>
25-
<div className="mx-auto mt-16 grid max-w-5xl grid-cols-1 gap-12 md:grid-cols-2 lg:gap-8">
26-
<section className="mt-4">
24+
<div className="mx-auto mt-16 flex max-w-5xl flex-col gap-12 md:flex-row lg:gap-8">
25+
<section className="mt-4 flex-1">
2726
<p className="text-lg leading-relaxed">
2827
Contact our Developer Productivity Engineers for demos,
2928
onboarding, and product questions. Share your requirements and
@@ -119,7 +118,7 @@ export function TalkToOurEngineeringTeam(): ReactElement {
119118
</div>
120119
</div>
121120
</section>
122-
<section className="rounded-xl border border-slate-200 bg-white p-8 dark:border-slate-800/40">
121+
<section className="flex-1 self-start rounded-xl border border-slate-200 bg-white p-8 dark:border-slate-800/40">
123122
<HubspotForm
124123
region="na1"
125124
portalId="2757427"

0 commit comments

Comments
 (0)