Notification Channel Picker

Get Notified

Choose how you want to hear from us

Pick your preferred notification channels and we'll let you know the moment we launch.

We respect your privacy. Unsubscribe anytime.

About this block

Notification Channel PickerPRO

Coming soon section with selectable notification channel cards for email, Slack, Twitter, and more. Perfect for letting users choose how they want to be notified at launch.

ComingSoon11: Notification Channel Picker

A centered coming-soon section that stacks an eyebrow badge, heading, and description above a responsive grid of selectable notification-channel cards, then reveals a per-channel input form and submit button once at least one channel is picked, swapping the whole section for a success panel on submit.

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

Base UI flavor

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

This installs the block to components/beste/block/comingsoon11.tsx.

Quick start

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

tsx
import { ComingSoon11, comingsoon11Demo } from "@/components/beste/block/comingsoon11";

export default function Page() {
  return <ComingSoon11 {...comingsoon11Demo} />;
}

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

tsx
import { Bell, Mail } from "lucide-react";
import { ComingSoon11 } from "@/components/beste/block/comingsoon11";

export default function Page() {
  return (
    <ComingSoon11
      badge={{ label: "Get notified", variant: "secondary" }}
      heading="Choose how you want to hear from us"
      description="Pick your channels and we'll ping you the moment we launch."
      channels={[
        {
          icon: <Mail className="size-6" />,
          title: "Email",
          description: "A launch note straight to your inbox",
          id: "email",
          input: { type: "email", placeholder: "you@studio.com" },
        },
        {
          icon: <Bell className="size-6" />,
          title: "Push",
          description: "Browser notification when we go live",
          id: "push",
        },
      ]}
      labels={{
        selectedCount: "{count} channel(s) selected",
        submitButton: "Notify me",
        successHeading: "You're on the list!",
        successDescription: "We'll reach you via {channels} when we launch.",
        footerText: "We respect your privacy. Unsubscribe anytime.",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Eyebrow badge rendered above the heading via the shadcn Badge, defaulting to the default variant
headingstringSection heading
descriptionstringSupporting paragraph under the heading
channelsNotifyChannel[][]Selectable channel cards; each carries an icon, title, description, id, and optional input
labels{ selectedCount?: string; submitButton?: string; successHeading?: string; successDescription?: string; footerText?: string }Copy for the selection count, submit button, success panel, and footer note
classNamestringExtra classes for the outer <section>
ts
interface NotifyChannel {
  icon: React.ReactNode;
  title: string;
  description: string;
  id: string;
  input?: {
    type: string;
    placeholder: string;
  };
}

Behavior notes

  • The block is a client component: it tracks the chosen channels in a useState Set and toggles ids in and out as their cards are clicked, ringing and check-marking the selected ones.
  • The input form only appears once selected.size is above zero, and it renders one Input per selected channel that actually declares an input, so purely notification-style channels contribute no field.
  • Submitting calls preventDefault and flips a submitted flag; the entire section is then replaced by a centered success panel with a check badge and pills for each chosen channel, so there is no external callback to wire.
  • The selectedCount and successDescription labels are token templates: {count} is replaced with the number selected and {channels} with the comma-joined channel titles.
  • The card grid layout adapts to channel count: one or two channels lay out in a centered flex row, three become a three-column grid, and four or more become a responsive two-then-four-column grid.
  • Every string is rendered as plain text with no inline markup parsing, so HTML passed into headings, descriptions, or labels shows as escaped text.

Wiring the form up

The form ships as UI without a backend, so submissions are not sent anywhere until you connect one. Point the submit handler at your own route handler or email platform, or wire in a form library. For a walkthrough of the options, see React Hook Form, TanStack Form, and Formisch.

More Coming Soon blocks

View all Coming Soon
PRO

comingsoon6

Waitlist with Avatars

Coming soon section with an email waitlist input, stacked subscriber avatars, and a live join count. Perfect for building early traction and social proof before launch.

PRO

comingsoon55

Image Notify Bar

A full-bleed image coming-soon hero with a bottom gradient and light text, a square eyebrow, a large heading and a supporting line, beside a solid notify card holding a working email form with a success state.

PRO

comingsoon5

Sneak Peek Feature Grid

Coming soon section with a grid of blurred sneak-peek feature cards and lock overlays that tease upcoming features. Perfect for building anticipation by showing what's coming without revealing full details.

PRO

comingsoon58

Store Drop Coming Soon

An e-commerce coming-soon section with a square eyebrow, a heading, a drop-date card, a grid of product teaser cards with blurred prices, and a working email notify form with a success state.

PRO

comingsoon22

Coming Soon Notify Page

A centered coming-soon launch page with a brand wordmark, a square eyebrow, an accent-highlighted heading, a working email notify form with a success state, a launch note, and a row of social links.

PRO

comingsoon43

Survey Waitlist

A pre-launch survey card with a square eyebrow, a heading, a single-choice question with selectable radio options, and a working rounded email-capture form with a success state.