# Beste UI

> Beautiful, accessible blocks, pieces and components for shadcn/ui and Tailwind CSS, built for React and Next.js. Install one with the shadcn CLI and the code is yours to edit: no runtime dependency, nothing to upgrade.

Markdown rendition of https://ui.beste.co/blog/75-shadcn-coming-soon-blocks. Every page on the site has one: add `.md` to any address, or send `Accept: text/markdown`.

Last updated: 2026-07-22

Whole catalog for LLMs: https://ui.beste.co/llms.txt. Registry index: https://ui.beste.co/r/registry.json

---
[All posts](/blog)

July 22, 2026·10 min read

# 75 shadcn Coming Soon Blocks: Waitlists, Countdowns, and Launch Pages for Next.js

The coming-soon category reaches seventy-five production-ready blocks built on shadcn/ui: working waitlist and notify forms, live countdowns, referral mechanics, and full launch pages. Here are sixteen of the best of the newest, across two studio sets. Each installs with one CLI command and exposes every visible value as a typed prop.

coming-soonwaitlistshadcnreactnextjs

![zieg](/_next/image?url=%2Fassets%2Fimages%2Fzieg.jpg&w=96&q=75&dpl=dpl_CY2dAqud5esqh3XyqpW5XSreDKej)

ziegbuilding beste.co

[zieg's website](https://zieg.beste.co)[zieg on X](https://x.com/forwardset)[zieg on LinkedIn](https://linkedin.com/in/ziegfiroyt)

The coming-soon page is often the first thing a product ships and the last thing anyone budgets time for. It looks like a hero with an email field, so it gets treated like one: paste a static section, wire an input, ship. Then the requests arrive. Add a countdown. Show how many people are waiting. Let the form say thanks instead of reloading. Move people up the queue when they refer a friend. None of that is static, and the moment it stops being static, a pasted hero stops being enough. So teams reach for a hosted "coming soon page" builder, inherit its branding and its rigidity, and rebuild it anyway the week the real site lands.

We think a launch page deserves the same treatment we gave [landing pages](/blog/landing-page-in-ten-blocks), [dashboards](/blog/13-shadcn-ui-dashboard-blocks), and [onboarding](/blog/32-shadcn-onboarding-blocks): real components you own, not a page you rent. With this drop the coming-soon category reaches seventy-five blocks. Rather than march through all of them, this post highlights sixteen of the best of the newest, the ones worth reaching for first. You can [browse the whole category](/blocks/coming-soon) when you want the rest.

### Two visual languages, one category

The sixty newest blocks come in two studio flavors, so a launch page fits the brand around it instead of fighting it.

**Auralis** is monochrome and editorial: oversized type, generous space, and a parenthetical eyebrow that reads like a caption. It suits studios, products, and portfolios that want to feel quiet and considered.

**Polaris** carries a single accent color, a square eyebrow, and seal-style buttons. It reads warmer and more product-like, and it is the natural fit when your launch wants a splash of brand color.

Both sets follow the same rules, expose the same kind of props, and mix freely with the earlier utility blocks (countdown timers, roadmaps, FAQ, and status boards) that opened the category.

### What actually installs

Every block is a single React component, and the shadcn CLI resolves its whole dependency tree in one shot:

bashCopy

```
npx shadcn add "https://ui.beste.co/r/comingsoon36?email=YOUR_EMAIL&license_key=YOUR_KEY"
```

That command lands three things in your codebase:

1. **The block** at `components/beste/block/comingsoon36.tsx`. Plain TSX you own and edit.
2. **The set primitive it uses** (the Auralis or Polaris eyebrow and button), installed once and shared across every block from that set.
3. **Nothing else.** There is no runtime dependency on us, no waitlist provider, no license check in your bundle, and no email service you are locked into. The form is a real `<form>` with a submit handler you point wherever you want.

If you are on Base UI instead of Radix, swap `/r/` for `/r-base/` in the URL and you get the [Base UI build](/blog/base-ui-the-new-default) of the same component. For the full command and license setup, see the [installation docs](/docs/installation).

### Start with the capture

Most coming-soon pages exist to capture one thing: intent. So the core of the set is the notify form, and every one of them is a working form with a success state, not a decorative input.

Image Split Waitlist

[View block](/block/comingsoon16)

Loading preview…

comingsoon16 (Auralis): an image-split waitlist with a rounded email form, a success state, and an avatar social-proof row. Heading, copy, image, and every label are props.

`comingsoon16` is the split waitlist: copy and capture on one side, a full-bleed image on the other. When the promise has a date attached, a ticking clock makes it real, and the countdowns run on a target date you pass in.

Countdown Clock Waitlist

[View block](/block/comingsoon36)

Loading preview…

comingsoon36 (Polaris): a centered countdown clock over a working waitlist form with avatar proof. Pass a target date and the clock does the rest. It starts at zero and only ticks on the client, so it hydrates cleanly.

### Launch pages that stand alone

Some of these are not a strip you drop between a hero and a footer. They are the whole page, built to stand on their own at the root of a temporary domain.

Image Notify Bar

[View block](/block/comingsoon55)

Loading preview…

comingsoon55 (Polaris): a full-bleed image launch page with a bottom gradient, an oversized headline, and a solid notify card that stays readable over any photo.

For launches where the layout is part of the pitch, [comingsoon48](/block/comingsoon48) composes a headline, a notify form, an image, and social proof into a single bento grid.

Bento Launch Grid

[View block](/block/comingsoon48)

Loading preview…

comingsoon48 (Auralis): a bento launch grid combining a headline and notify form, an image tile, and a social-proof tile in one composition.

Not every coming-soon lives behind a brand. [comingsoon60](/block/comingsoon60) is the personal portfolio under construction, with a name, a role, contact links, and an availability status, ready for the root of your own domain.

### The ones people remember

A few blocks lean on a strong idea rather than a single call to action, for launches where the design does the selling.

Launch Pass Ticket

[View block](/block/comingsoon51)

Loading preview…

comingsoon51 (Polaris): a launch page styled as a perforated pass. The main stub carries the notify form; the tear-off carries a barcode and pass code.

`comingsoon51` renders early access as a physical ticket. For a page that fills up as people arrive, [comingsoon73](/block/comingsoon73) turns each signup into a chip on a growing wall.

Sign The Wall Waitlist

[View block](/block/comingsoon73)

Loading preview…

comingsoon73 (Auralis): sign the wall. The name and email form prepends your entry to a live wall of member chips, so the page fills up as people join.

And when a teaser video says more than a paragraph, [comingsoon33](/block/comingsoon33) sits it behind a play button that opens the clip in a modal.

### A block for what you are actually launching

A restaurant, a conference, and a product drop all say "coming soon" in completely different shapes. Rather than bend one waitlist to fit them, the set covers the shapes.

Store Drop Coming Soon

[View block](/block/comingsoon58)

Loading preview…

comingsoon58 (Polaris): a store drop with product teaser cards, blurred prices, a drop-date card, and a notify form for the release.

`comingsoon58` is the retail drop, prices blurred until launch. [comingsoon56](/block/comingsoon56) opens a restaurant with hours and an address, [comingsoon57](/block/comingsoon57) sells an event with a date, a venue, and a speaker row, and [comingsoon68](/block/comingsoon68) teases an album for pre-order with a tracklist. [comingsoon72](/block/comingsoon72) collects RSVPs for a gallery opening, and [comingsoon74](/block/comingsoon74) announces a major version-two relaunch with a what-is-new grid.

Capture momentum, not just the address

The best waitlists compound. [comingsoon71](/block/comingsoon71) unlocks reward tiers as a member's referral count climbs, and [comingsoon50](/block/comingsoon50) shows how close the launch is with a readiness bar that fills as you scroll. Store the referral or the signal on the record, and your first launch email can already speak to it.

### Every value on the screen is a prop

The rule we held the whole category to is the same one behind the [dashboard set](/blog/13-shadcn-ui-dashboard-blocks): **if you can read it, you can pass it.**

Each block renders its full demo with zero props, so `<ComingSoon36 />` looks exactly like the preview above. Every prop is optional and falls back to the demo value, so you replace demo copy with real content one field at a time instead of filling a config object before anything appears:

tsxCopy

```
import { ComingSoon36, comingsoon36Demo } from "@/components/beste/block/comingsoon36";

export default function LaunchPage() {
  return (
    <ComingSoon36
      label="Launching Soon"
      heading="The doors to <strong>Halo</strong> open when the clock hits zero."
      targetDate="2026-10-24T09:00:00Z"
      labels={{
        placeholder: "Enter your work email",
        success: "You're on the list. We'll open the doors to you first.",
        proof: "3,400+ teams already counting down",
      }}
    />
  );
}
```

Every block exports its demo object too (`comingsoon36Demo` here), which doubles as documentation: the exact shape your data needs, in a file you can open. The interactivity stays yours and stays simple. The countdown takes a target date. The form holds its own email state and flips to a success message on submit, and the submit handler is a plain function you point at your own endpoint, whether that is a route handler, a form service, or your email platform. Nothing about the data leaves through us.

### The details you would have had to get right yourself

* **Server rendering is safe.** Countdowns start at zero and only tick on the client, and there is no `Math.random()` in a render path, so the pages hydrate without mismatch warnings.
* **The forms actually work.** Real `<form>` elements, real submit handlers, a success state per block, and inputs that carry `aria-label`s. Wiring your backend is one function body.
* **Mobile holds up.** Split panels stack, countdowns reflow, and full-bleed heroes keep their text readable, because a launch page gets more phone traffic than desktop, not less.
* **Theming is token-based.** Everything reads from your CSS variables, so the blocks adopt your brand and your dark mode the moment they land. If you are still shaping those tokens, [the anatomy of a shadcn theme](/blog/anatomy-of-a-shadcn-theme) walks through the variables these depend on.
* **The code is yours.** It is TSX in your repo, structured the way you would have written it, with no wrapper package to fork when a real requirement arrives. If your capture form needs validation, our [forms deep dive](/blog/shadcn-forms-react-hook-form-tanstack-formisch) covers the layer these pair with.

### The sixteen at a glance

Every block links to a live, full-screen preview on its page. These are the highlights of the newest drop; the [coming-soon category](/blocks/coming-soon) holds all seventy-five.

| Block                               | Set     | Best for                          |
| ----------------------------------- | ------- | --------------------------------- |
| [comingsoon16](/block/comingsoon16) | Auralis | An image-led waitlist             |
| [comingsoon33](/block/comingsoon33) | Auralis | A launch teaser video             |
| [comingsoon36](/block/comingsoon36) | Polaris | A countdown plus capture          |
| [comingsoon48](/block/comingsoon48) | Auralis | A composed bento launch page      |
| [comingsoon50](/block/comingsoon50) | Auralis | A build-readiness page            |
| [comingsoon51](/block/comingsoon51) | Polaris | A memorable early-access pass     |
| [comingsoon55](/block/comingsoon55) | Polaris | A full-bleed launch page          |
| [comingsoon56](/block/comingsoon56) | Polaris | Hospitality openings              |
| [comingsoon57](/block/comingsoon57) | Polaris | Conferences and events            |
| [comingsoon58](/block/comingsoon58) | Polaris | E-commerce drops                  |
| [comingsoon60](/block/comingsoon60) | Auralis | Personal sites under construction |
| [comingsoon68](/block/comingsoon68) | Auralis | Music and book releases           |
| [comingsoon71](/block/comingsoon71) | Polaris | Reward-driven referrals           |
| [comingsoon72](/block/comingsoon72) | Auralis | Galleries and shows               |
| [comingsoon73](/block/comingsoon73) | Auralis | A public, growing waitlist        |
| [comingsoon74](/block/comingsoon74) | Polaris | Major relaunches                  |

Some of the earlier blocks in the category, including the classic countdown timer and the simple waitlist, are free to install and try before you commit. The rest are part of Beste UI Pro.

### Where these get discovered

We publish the whole catalog as a structured, machine-readable feed so search engines and AI assistants can index it directly, which is how a query like "shadcn coming soon blocks" can surface the right category instead of a wall of screenshots. That is the idea behind engines like [shoogle.dev](https://shoogle.dev), which discover and rank sites through structured signals rather than crawling rendered pages. If you want your own component library to be found the same way, our [MCP server](/blog/beste-ui-mcp-server) exposes the catalog to assistants over the same kind of structured data.

### Ship the page before the product

A launch page is the one thing you can put live before anything else is finished, and it is how you arrive at launch day with an audience instead of a countdown to silence. Pick a block that matches what you are building, install it, point the form at your list, and set a target date. Because every block ships complete, your page looks finished from the first commit, and you spend your time on the product it is promising rather than the page that promises it.

Launch with an audience

All seventy-five coming-soon blocks, both studio sets, and every other Pro block are included in one license. Install them straight from the CLI and own the code.

[Get ProGet Pro](/pricing)

## Build it with real blocks

Every section in this post is a component you can copy into your own codebase and own outright.

[Browse blocksBrowse blocks](/blocks)[Read more postsRead more posts](/blog)

## Ship the interface, keep the code.

New blocks, pieces and components every week. Install one with a command and it is yours to edit. No runtime dependency, no upgrade path to fight.

[Browse the libraryBrowse the library](/blocks)[See pricingSee pricing](/pricing)

### Library

* [Blocks](/blocks)
* [Pages](/pages)
* [Pieces](/pieces)
* [Components](/components)
* [Search](/search)

### Learn

* [Docs](/docs)
* [AI & MCP](/docs/mcp)
* [Blog](/blog)
* [Free tools](/tools)
* [What's new?](/changelog)
* [Website Builder](https://beste.co)

### More

* [Pricing](/pricing)
* [Referrals](/referrals)
* [License](/license)
* [GitHub](https://github.com/beste-co/beste-ui)

### Shadcn Blocks

* [Shadcn Hero Blocks](/blocks/hero)
* [Shadcn Feature Blocks](/blocks/feature)
* [Shadcn Pricing Blocks](/blocks/pricing)
* [Shadcn CTA Blocks](/blocks/cta)
* [Shadcn FAQ Blocks](/blocks/faq)
* [Shadcn About Blocks](/blocks/about)
* [Shadcn Stats Blocks](/blocks/stats)
* [Shadcn Footer Blocks](/blocks/footer)
* [Shadcn Navigation Blocks](/blocks/navigation)
* [Shadcn Auth Blocks](/blocks/auth)
* [Shadcn Ecommerce Blocks](/blocks/ecommerce)
* [Shadcn Portfolio Blocks](/blocks/portfolio)
* [Shadcn Showcase Blocks](/blocks/showcase)
* [Shadcn Careers Blocks](/blocks/careers)
* [Shadcn Onboarding Blocks](/blocks/onboarding)
* [Shadcn Coming Soon Blocks](/blocks/coming-soon)
* [Shadcn Post Blocks](/blocks/post)
* [Shadcn Legal Blocks](/blocks/legal)
* [Shadcn Workflow Blocks](/blocks/workflow)
* [Shadcn News Blocks](/blocks/news)

© 2026, [Beste](https://beste.co). All rights reserved.