Workspace / template / template

SaaS Launch Template

A complete SaaS landing page assembled from curated Pax blocks: split hero, feature bento, pricing toggle, testimonial, FAQ, and closing CTA on a coherent editorial rhythm.

Workspacetemplatetemplate

paxfx add blocks/template-saas-launchlocal only

Tier: 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>
  );
}