Countdown Clock Waitlist
A centered coming-soon screen built around a large, live days:hours:minutes:seconds countdown to a target launch date. Below it sits a working email capture form with a success state, and a row of overlapping subscriber avatars for social proof.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its avatar, avatar-initials dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/countdown-clock-waitlist.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/coming-soon/comingsoon36.tsx instead.
Usage
The file also exports comingsoon36Demo, 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 { ComingSoon36, comingsoon36Demo } from "@/components/blocks/coming-soon/comingsoon36"; export default function Page() { return <ComingSoon36 {...comingsoon36Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | "Coming soon" | Small label above the heading. |
| heading | string | "Something big is" | First half of the main heading. |
| headingAccent | string | "almost here" | Accent-colored second half of the heading. |
| description | string | "We're putting the finishing touches on it..." | Supporting copy under the heading. |
| targetDate | string | none | ISO date string the countdown clock counts down to. |
| members | WaitlistMember[] | none | Members shown as overlapping avatars for social proof. |
| memberCountLabel | string | "3,482 people already on the list" | Label shown next to the avatar row. |
| className | string | none | Extra classes for the outer section element. |
Types
export interface WaitlistMember { name: string; avatarSrc?: string; }
Behavior notes
- The countdown clock is real client state: an effect computes `targetDate` minus `Date.now()` once on mount and again every second via `setInterval`, rendering `--` placeholders until the first tick resolves so nothing is computed during render.
- The email form is real client state, submitting flips it to a success message, no network request is made anywhere.
- Avatars fall back to initials (via `initialsFromName`) when no `avatarSrc` is provided, same pattern as the other waitlist blocks in this category.
More Coming Soon Blocks
View all →countdown-timer-launch
Countdown Timer Launch
A centered launch page with a live days/hours/minutes/seconds countdown to a target date.
development-progress-milestones
Development Progress Milestones
A centered launch page with an overall progress bar and a milestone tracker list with status badges.
social-connect-launch
Social Connect Launch
A centered coming-soon page with pill-style outline buttons linking out to Twitter, GitHub, LinkedIn, and email.
animated-icons-preview
Animated Icons Preview
A centered coming-soon page with a row of bobbing icon tiles and a pulsing build-status indicator.
sneak-peek-feature-grid
Sneak Peek Feature Grid
A centered coming-soon page with a grid of blurred feature cards teased behind a lock icon overlay.
waitlist-with-avatars
Waitlist with Avatars
A centered coming-soon page with a working waitlist signup form, stacked subscriber avatars, and a live join count.