Waitlist Signup Counter
A centered coming-soon screen with a square eyebrow and a bold heading with an accent-highlighted phrase, followed by a working email waitlist form. Below the form, an avatar row and a signup counter update live as the counter's number increments each time a visitor successfully joins.
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/waitlist-signup-counter.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/coming-soon/comingsoon21.tsx instead.
Usage
The file also exports comingsoon21Demo, 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 { ComingSoon21, comingsoon21Demo } from "@/components/blocks/coming-soon/comingsoon21"; export default function Page() { return <ComingSoon21 {...comingsoon21Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | "Coming soon" | Small label above the heading. |
| headingPrefix | string | "Be one of the" | Heading text before the highlighted phrase. |
| highlight | string | "first 1,000" | Accent-colored phrase in the middle of the heading. |
| headingSuffix | string | "to get access" | Heading text after the highlighted phrase. |
| description | string | "We're opening things up gradually..." | Supporting copy under the heading. |
| avatars | SignupAvatar[] | none | Stacked avatars rendered next to the signup counter. |
| signupCount | number | none | Starting signup count the counter increments from. |
| className | string | none | Extra classes for the outer section element. |
Types
interface SignupAvatar { name: string; image?: { src: string; alt: string }; }
Behavior notes
- The email field and submit are real client state (useState): submitting swaps the form for a confirmation message and increments the signup counter by one, nothing is sent to a server.
- The signup counter is seeded from the `signupCount` prop and only ever increases from real submissions in this session, it does not persist or sync across visitors.
- Avatars fall back to initials (via AvatarFallback/initialsFromName) when no `image` is supplied per entry, same pattern as the chat blocks.
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.