Two-Path Closing CardsPRO

A closing call to action offering two routes as side-by-side cards, each with an icon tile, a short kicker, a checked list on hairlines, and its own action, with the recommended route outlined in the accent.

Cta83: Two-Path Closing Cards

A closing call to action offering two routes as side-by-side cards, each with an icon tile, a short kicker, a checked list on hairlines and its own action, with the recommended route outlined in the accent.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/cta83?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/cta83?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/cta83.tsx plus the badge23 and button21 components it uses for the eyebrow and the card actions.

Quick start

The installed file exports cta83Demo alongside the block: the exact props behind the preview above. Spread it to get a working call to action in one line.

tsx
import { Cta83, cta83Demo } from "@/components/beste/block/cta83";

export default function Page() {
  return <Cta83 {...cta83Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Cta83 } from "@/components/beste/block/cta83";
import { PhoneCall, Rocket } from "lucide-react";

export default function Page() {
  return (
    <Cta83
      badge={{ label: "Two ways in" }}
      heading="Start on your own, or start with us on the call"
      description="Both routes end in the same workspace."
      paths={[
        {
          icon: Rocket,
          kicker: "Self-serve",
          title: "Open a workspace now",
          description: "Sign up, import a list of members, and have a booking page before lunch.",
          points: ["Free for your first clinic", "No card, no sales call"],
          button: { label: "Start free", href: "/signup" },
          featured: true,
        },
        {
          icon: PhoneCall,
          kicker: "Guided",
          title: "Bring the whole practice across",
          description: "Thirty minutes with an engineer, then a dry run on your own data.",
          points: ["Mapping done with your lead", "A private dry-run workspace"],
          button: { label: "Book a call", href: "/demo" },
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Centered eyebrow above the heading, rendered through Badge23
headingstringSection heading, centered and capped at max-w-2xl
descriptionstringCentered supporting paragraph, capped at max-w-xl
pathsPathCard[][]Route cards, laid out two-up from md
classNamestringExtra classes for the outer section
ts
import type { LucideIcon } from "lucide-react";

type ActionLink = {
  label: string;
  href: string;
};

type PathCard = {
  icon: LucideIcon;
  kicker: string;
  title: string;
  description: string;
  points: string[];
  button: ActionLink;
  featured?: boolean;
};

Behavior notes

More CTA blocks

View all CTA
PRO

cta80

Two Path Closing CTA

Closing section that offers two routes side by side, each a ruled column with a title, a short pitch, a dotted-rule list of what to expect and its own pill CTA, one solid and one outline.

PRO

cta29

Dual CTA

Two equal side-by-side call-to-action cards offering different paths. Perfect for segmenting audiences like developers vs designers or free vs paid.

PRO

cta13

Multi-Card CTA

Multiple action cards with different tiers or options side by side. Perfect for offering multiple paths like free trial, demo booking, and enterprise contact.

PRO

cta86

Contact And Availability CTA

A closing call to action splitting a bordered container between a hairline contact table and an inverted dark column that floats a live card naming the person you will meet above the booking action.

PRO

cta23

Two-Tier CTA

Stacked two-tier call-to-action with primary offer on top and secondary alternative below, separated by a divider. Perfect for presenting main and fallback conversion paths.

PRO

cta36

Accent Sidebar CTA

Card with colored accent left border and inline call-to-action. Perfect for attention-grabbing inline conversion prompts.