Staaarter

Objection Buster CTA

Call-to-action addressing common objections with question-and-answer pairs and a conversion button. Each objection and its rebuttal are shown as plain, always-visible text (not an accordion), ending in a single button. Perfect for overcoming hesitation right before the ask.

By Staaarter Team
CTA
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/objection-buster-cta.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/cta/cta39.tsx instead.

Usage

The file also exports cta39Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Cta39, cta39Demo } from "@/components/blocks/cta/cta39";

export default function Page() {
  return <Cta39 {...cta39Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Still on the fence?"Heading above the objection list.
descriptionstring"Here's what teams usually ask before switching."Short supporting copy under the heading.
objectionsObjection[]noneObjection/rebuttal pairs, shown in order as plain question-answer text.
buttonLabelstring"Start free trial"Label for the closing conversion button.
buttonHrefstring"#"Link target for the closing conversion button.
classNamestringnoneExtra classes for the outer section element.

Types

interface Objection {
  question: string;
  answer: string;
}

Behavior notes

  • Objection/rebuttal pairs render as a plain `<dl>` list, every answer always visible; there is no accordion, expand/collapse, or client-side state involved despite the Q&A framing.
  • The closing button is an inert link (`render={<Link/>}`) pointing at `#` by default; there is no real trial-start flow wired up.