We're building in public. Here's our timeline so you know exactly when to expect each milestone.
Core infrastructure, authentication, and API layer
Q1 2025Invite-only access for early adopters and feedback collection
Q2 2025Open access with core features and integrations
Q3 2025Team features, SSO, and advanced admin controls
Q4 2025Marketplace, third-party plugins, and developer API
Q1 2026Coming soon section with a vertical timeline showing launch phases, dates, and status indicators. Perfect for communicating a clear release plan and keeping users informed about upcoming milestones.
A centered coming-soon section that stacks a badge, heading, and description above a vertical connected timeline, where each phase renders a status-styled icon node, a title with a status pill, a description, and a date.
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/comingsoon7?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/comingsoon7?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/comingsoon7.tsx.
The installed file exports comingsoon7Demo alongside the block: the exact props behind the preview above. Spread it to get a working roadmap timeline in one line.
import { ComingSoon7, comingsoon7Demo } from "@/components/beste/block/comingsoon7";
export default function Page() {
return <ComingSoon7 {...comingsoon7Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { ComingSoon7 } from "@/components/beste/block/comingsoon7";
export default function Page() {
return (
<ComingSoon7
badge={{ label: "Roadmap", variant: "secondary" }}
heading="Our path to launch"
description="We're building in public, so you know exactly when to expect each milestone."
phases={[
{
title: "Foundation",
description: "Core infrastructure, authentication, and API layer",
date: "Q1 2025",
status: "completed",
},
{
title: "Public preview",
description: "Open access with core features and integrations",
date: "Q3 2025",
status: "current",
},
{
title: "Enterprise launch",
description: "Team features, SSO, and advanced admin controls",
date: "Q4 2025",
status: "upcoming",
},
]}
labels={{
completed: "Completed",
current: "In progress",
upcoming: "Upcoming",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Eyebrow badge rendered above the heading via shadcn Badge |
heading | string | – | Section heading |
description | string | – | Supporting paragraph under the heading |
phases | Phase[] | [] | Ordered timeline entries |
labels | { completed?: string; current?: string; upcoming?: string } | – | Status-pill text for each phase state |
className | string | – | Extra classes for the outer <section> |
type PhaseStatus = "completed" | "current" | "upcoming";
interface Phase {
title: string;
description: string;
date: string;
status: PhaseStatus;
}statusConfig entry keyed by its status to pick the node icon (Check, Clock, or Circle), the node color classes, and the connector-line color.isLast is computed as index === phases.length - 1 and suppresses the trailing segment.getStatusLabel, which maps each status to the matching labels string with "Completed", "In Progress", and "Upcoming" fallbacks.phases.length > 0; the badge, heading, and description each render only when their prop is present.bg-primary/10 text-primary treatment while upcoming pills use a muted style, and every string is plain text with no inline markup parsing, so HTML passed in shows as escaped text.Badge primitive for the eyebrow and lucide icons for the per-phase status nodes.comingsoon78
A pre-launch section that publishes remaining work instead of a date, with an image tile floating a live release tracker over hairline rows marked shipped, in testing, or queued.
comingsoon1
Coming soon section with a live countdown timer showing days, hours, minutes, and seconds until launch. Perfect for product launches, event announcements, or building anticipation for new features.
comingsoon2
Coming soon section with a progress bar and milestone tracker showing development stages like Design, Backend, Frontend, and Testing. Perfect for keeping users informed about product development progress.
comingsoon14
Coming soon section with tiered early access plans showing benefits, features, and availability for each level. Perfect for building a monetized waitlist with founding member perks.