A coming-soon bento grid with a large panel holding a wordmark, a monospace parenthetical eyebrow, a heading and a working email notify form, an image tile, and a dark social-proof tile with an avatar stack and waitlist count.
An Auralis coming-soon bento grid with a large muted panel holding a wordmark, a monospace parenthetical eyebrow, a heading, and a working email notify form, an image tile, and a dark social-proof tile with an overlapping avatar stack and a waitlist count.
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/comingsoon48?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/comingsoon48?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/comingsoon48.tsx.
The installed file exports comingsoon48Demo alongside the block: the exact props behind the preview above. Spread it to get a working bento launch grid in one line.
import { ComingSoon48, comingsoon48Demo } from "@/components/beste/block/comingsoon48";
export default function Page() {
return <ComingSoon48 {...comingsoon48Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { ComingSoon48 } from "@/components/beste/block/comingsoon48";
export default function Page() {
return (
<ComingSoon48
brand="Auralis"
badge={{ label: "Launching soon" }}
labels={{
placeholder: "you@studio.com",
success: "You're on the list. See you on opening day.",
count: "2,400",
proof: "makers already on the list",
}}
heading="A new home for the work you're proud of."
image={{ src: "/studio-corner.jpg", alt: "A bright, minimal studio corner" }}
avatars={[
{ src: "/people/ava.jpg", alt: "Waitlist member" },
{ src: "/people/theo.jpg", alt: "Waitlist member" },
{ src: "/people/priya.jpg", alt: "Waitlist member" },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
brand | string | – | Wordmark in the top corner of the main panel |
badge | Badge | – | Parenthetical eyebrow rendered via Badge7 |
labels | ComingSoon48Labels | {} | Form placeholder, success, and social-proof count and text |
heading | string | – | Statement heading on the main panel |
image | ImageItem | – | Cover image tile in the grid |
avatars | AvatarItem[] | [] | Overlapping avatar stack on the social-proof tile |
className | string | – | Extra classes for the outer <section> |
type Badge = {
label: string;
};
type ImageItem = {
src: string;
alt: string;
};
type AvatarItem = {
src: string;
alt: string;
};
type ComingSoon48Labels = {
placeholder?: string;
success?: string;
count?: string;
proof?: string;
};md:grid-cols-3 md:grid-rows-2 bento where the main panel spans two columns and two rows; the image and social-proof tiles fill the remaining cells.handleSubmit calls preventDefault and only flips to the success pill when the trimmed email is non-empty, so there is no external callback to wire.-space-x-3 overlapping stack of plain <img> elements with border-foreground rings on a bg-foreground social-proof tile, and the stack renders only when avatars is non-empty.labels.count or labels.proof is present, with count bolded ahead of the proof text.image is set, and every string is plain text with no inline markup parsing, so any HTML passed in shows as escaped text.Wiring the form up
The form ships with local state and a success message but no backend, so submissions are not sent anywhere until you connect one. Point handleSubmit 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.
comingsoon29
A newsletter-forward pre-launch section with a monospace parenthetical eyebrow, a heading and subscribe pill button on top, and a three-card grid of upcoming articles each with a kind label, title, and summary.
comingsoon49
A two-column coming-soon section with a vertical monospace edge label, an oversized wordmark, a tagline and a working email notify form, beside a framed portrait image tile.
comingsoon9
Coming soon section with a bento-grid of live build stats like commits, test coverage, uptime, and team size. Perfect for building in public with transparent engineering metrics.
comingsoon46
A full-height split coming-soon page with a dark brand panel carrying a wordmark, a monospace parenthetical eyebrow, a heading and a working email notify form, beside a full-bleed image with a floating launch label.