Workspace / template / template
SaaS Launch Template
paxfx add blocks/template-saas-launchlocal onlyTier: medium. Reduced motion: Every section renders its settled state; entrances and counters are skipped.
"use client";
import { NavigationBar } from "../../navigation/NavigationBar.js";
import { HeroSplit } from "../../hero/HeroSplit.js";
import { FeaturesBento } from "../../features/FeaturesBento.js";
import { PricingToggle } from "../../pricing/PricingToggle.js";
import { SocialProofSplit } from "../../social-proof/SocialProofSplit.js";
import { FaqAccordion } from "../../faq/FaqAccordion.js";
import { CtaBanner } from "../../cta/CtaBanner.js";
import { FooterColumns } from "../../footer/FooterColumns.js";
/**
* SaaS launch template: the standard conversion arc, assembled entirely
* from curated Pax blocks on one editorial rhythm. Replace copy per block
* via props; every section stands alone if you cut it.
*/
export default function SaasLaunchPage() {
return (
<main data-pax-asset="template-saas-launch">
<NavigationBar />
<HeroSplit
copy={{
eyebrow: "Forge 2.0",
title: "The build pipeline your team stops thinking about.",
description:
"Forge compiles, tests, and ships every commit in under a minute. Configure it once, then get back to the product.",
primaryCta: { label: "Start free", href: "#pricing" },
secondaryCta: { label: "Read the docs", href: "#docs" },
}}
/>
<FeaturesBento />
<PricingToggle />
<SocialProofSplit />
<FaqAccordion />
<CtaBanner
copy={{
title: "Your next deploy could take 48 seconds.",
primaryCta: { label: "Start free", href: "#pricing" },
}}
/>
<FooterColumns />
</main>
);
}