Staaarter

Launch Readiness Progress

A centered launch-readiness panel on a soft muted card. A percentage counts up to a target value alongside an animated progress bar, a row of status badges shows where each workstream stands, and an email form lets visitors get notified at launch.

By Staaarter Team
Coming Soon
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/launch-readiness-progress.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/coming-soon/comingsoon50.tsx instead.

Usage

The file also exports comingsoon50Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { ComingSoon50, comingsoon50Demo } from "@/components/blocks/coming-soon/comingsoon50";

export default function Page() {
  return <ComingSoon50 {...comingsoon50Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"We're almost ready to launch"Main heading.
descriptionstring"Our team is heads-down finishing the last few checks before we open the doors."Supporting sentence under the heading.
targetPercentnumber82The readiness percentage the counter animates up to on mount.
statusesLaunchStatusItem[]noneBuild-status rows rendered as badges (label + done/in-progress/pending).
classNamestringnoneExtra classes for the outer section element.

Types

export interface LaunchStatusItem {
  label: string;
  status: "done" | "in-progress" | "pending";
}

Behavior notes

  • The percentage counter and progress bar are real client state: a useEffect interval steps the value up from 0 to targetPercent over about a second on mount, it does not re-measure any real backend readiness.
  • The status badges are static, they just render whatever `statuses` array is passed in with no interactivity.
  • The email form is a real controlled input with a submit handler that flips local state to a success message, nothing is sent over the network.