A two-column podcast-launch section with an accent-badged square cover image beside a square eyebrow, show title, description, a dark seal subscribe button, platform links, and a ruled list of first episodes.
A Polaris two-column podcast-launch section with an accent-badged square cover image beside a square eyebrow, a show title, a description, a dark seal subscribe button with a Mic icon, a row of platform links, and a ruled numbered list of first episodes.
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.
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
npx shadcn add "https://ui.beste.co/r/comingsoon42?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/comingsoon42?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/comingsoon42.tsx.
The installed file exports comingsoon42Demo alongside the block: the exact props behind the preview above. Spread it to get a working podcast teaser in one line.
import { ComingSoon42, comingsoon42Demo } from "@/components/beste/block/comingsoon42";
export default function Page() {
return <ComingSoon42 {...comingsoon42Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { ComingSoon42 } from "@/components/beste/block/comingsoon42";
export default function Page() {
return (
<ComingSoon42
label="New Podcast"
labels={{
imageBadge: "Season 1",
episodesTitle: "First episodes",
listenCaption: "Listen on",
}}
heading="In the Making"
description="A weekly show about the messy middle of building things."
button={{ label: "Subscribe Now", href: "/subscribe" }}
platforms={[
{ label: "Spotify", href: "/on/spotify" },
{ label: "Apple", href: "/on/apple" },
]}
episodes={[
{ title: "Why we almost didn't start", length: "38 min" },
{ title: "Pricing is a feeling", length: "44 min" },
]}
image={{ src: "/cover.jpg", alt: "Podcast cover artwork" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
label | string | – | Square eyebrow rendered above the heading via Badge6 |
labels | ComingSoon42Labels | {} | Cover badge, episodes-list title, and listen-on caption |
heading | string | – | Show title |
description | string | – | Supporting paragraph under the title |
button | ActionLink | – | Dark seal subscribe link with a Mic icon via Button1 |
platforms | ActionLink[] | [] | Inline platform links joined by a middot separator |
episodes | EpisodeItem[] | [] | Ruled numbered list of first episodes |
image | ImageItem | – | Square cover image on the left with an optional accent badge |
className | string | – | Extra classes for the outer <section> |
type EpisodeItem = {
title: string;
length: string;
};
type ActionLink = {
label: string;
href: string;
};
type ImageItem = {
src: string;
alt: string;
};
type ComingSoon42Labels = {
imageBadge?: string;
episodesTitle?: string;
listenCaption?: string;
};image is set, as a plain <img> covering a square frame; labels.imageBadge overlays a bg-primary pill in the top-left corner when present.button renders as a real navigation via Button1 asChild wrapping a Next.js <Link href={button.href} /> with a Mic icon and the dark tone, so it points at a URL rather than firing a handler.platforms row renders each entry as a Next.js <Link> and joins them with a literal middot separator, prefixed by labels.listenCaption, only when the array is non-empty.episodes list renders only when non-empty, with each row drawn under border-t rules and numbered with a zero-padded index (01, 02), the title, and the length.comingsoon33
A full-bleed image pre-launch teaser with a dark overlay, a monospace parenthetical eyebrow, a central play button that opens the teaser video in a modal, a heading and supporting line, and a light outline waitlist pill button.
comingsoon53
A two-column coming-soon section styled as a magazine launch with an accent-badged cover image, a masthead, a square eyebrow, a heading, a numbered contents list, and a working email subscribe form.
comingsoon63
A product launch coming-soon section with a full-height product image beside a monospace parenthetical eyebrow, a product name, a tagline, a ship date, a working notify email form, and a spec grid.
comingsoon18
A full-bleed image pre-launch hero with a dark overlay, a monospace parenthetical eyebrow, a small kicker, an oversized launch-date headline, a supporting line, and a light outline pill notify button.