Staaarter

Waitlist with Avatars

A centered coming-soon screen combining social proof with a real signup form. Overlapping subscriber avatars sit next to a live join count, and submitting the email form flips to a success state while incrementing the count by one.

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 avatar, avatar-initials dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/waitlist-with-avatars.json

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

Usage

The file also exports comingsoon6Demo, 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 { ComingSoon6, comingsoon6Demo } from "@/components/blocks/coming-soon/comingsoon6";

export default function Page() {
  return <ComingSoon6 {...comingsoon6Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstring"Coming soon"Small label above the heading.
headingstring"Join the waitlist"Main heading.
descriptionstring"Be the first to know when we launch..."Supporting copy under the heading.
subscribersWaitlistSubscriber[]noneSubscribers shown as overlapping avatars.
joinCountnumbernoneInitial number of people who've already joined, shown next to the avatars.
classNamestringnoneExtra classes for the outer section element.

Types

export interface WaitlistSubscriber {
  name: string;
  avatarSrc?: string;
}

Behavior notes

  • The email form is real client state: submitting it sets a `submitted` flag that swaps the form for a success message, and increments the displayed join count by one in the same handler, seeded from the `joinCount` prop.
  • Avatars fall back to initials (via `initialsFromName`) when no `avatarSrc` is provided, same pattern as the About team blocks.
  • No network request is made anywhere, this is a local-state-only simulation of a signup.