Cadence Picker Signup

Your inbox, your rules

Choose how often you hear from us

One letter on Tuesday morning, around 700 words, written the night before.

You can change the rhythm from any issue, and changing it never resends what you already read.

About this block

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

  • The paragraph under the buttons is the selected cadence's detail, so the choice explains itself instead of needing a description beside every option.
  • The first cadence is selected on load, and selection is held by index rather than by label, so two options may share wording.
  • Options are real buttons with the active one filled bg-foreground text-background. They wrap onto a second line on a narrow screen instead of scrolling.
  • Submitting swaps the row for the confirmation line in place. The chosen cadence is in component state, so read it there when you connect this to a list.

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

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

cta98

Monthly Letter CTA

A newsletter call to action on a light page with a drifting soft light: a serif heading that settles in word by word and an intro on the left, a rounded email field with a full-width sliding-marker pill and a reader avatar line on the right.

PRO

cta42

Quote Carousel CTA

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