Cadence Picker SignupPRO

A narrow signup where the reader first picks how often they want to hear from you, the paragraph underneath rewriting itself for the choice, before the single email row is filled in.

Cta94: Cadence Picker Signup

A narrow signup where the reader first picks how often they want to hear from you, the paragraph underneath rewriting itself for the choice, before the single email row is filled in.

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/cta94?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/cta94.tsx, the badge6 component used for the eyebrow, and the shadcn/ui input and button primitives behind the signup row.

Quick start

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

tsx
import { Cta94, cta94Demo } from "@/components/beste/block/cta94";

export default function SubscribePage() {
  return <Cta94 {...cta94Demo} />;
}

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

tsx
import { Cta94 } from "@/components/beste/block/cta94";

export default function SubscribePage() {
  return (
    <Cta94
      eyebrow="Your inbox, your rules"
      heading="Choose how often you hear from us"
      cadences={[
        { label: "Every week", detail: "One letter on Tuesday morning, around 700 words." },
        { label: "Once a month", detail: "The three pieces worth keeping, on the first Tuesday." },
      ]}
      placeholder="you@studio.com"
      submitLabel="Set it up"
      note="You can change the rhythm from any issue."
      confirmation="Saved. The first one arrives on the schedule you picked."
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringBadge6 label above the heading
headingstringSection heading
cadencesCadence[][]Options, rendered as a row of buttons
placeholderstringPlaceholder in the email field
submitLabelstringLabel on the submit button
notestringFine print under the row
confirmationstringLine that replaces the row after submitting
classNamestringExtra classes for the outer section
ts
type Cadence = {
  label: string;
  detail: string;
};

Behavior notes

More CTA blocks

View all CTA
FREE

cta92

Tailored Subscription

A newsletter CTA that asks before it asks for an address: subjects, then cadence, then the email, and the column swaps itself for a confirmation that reads back exactly what was chosen.

PRO

cta26

Countdown CTA

Urgency-driven call-to-action with countdown numbers and limited-time offer messaging. Perfect for launches and time-sensitive promotions.

PRO

cta42

Quote Carousel CTA

Rotating testimonial quotes with author info and persistent call-to-action buttons. Perfect for social proof that stays fresh.

PRO

cta22

Highlight Card CTA

Card-style call-to-action with value-driven highlight metrics in a bordered grid. Perfect for data-backed conversion sections.

PRO

cta85

Migration Process CTA

A closing call to action on a soft section that puts a live step tracker between centered copy and three hairline notes, then lands on a single action with its fine print.

PRO

cta91

Handheld Reminder CTA

A closing call to action that leads with a narrow portrait tile floating a live phone frame, then sets centered copy and two actions beneath it over three hairline promises.

Markdown version