Bento Stats Dashboard

Behind the Scenes

Built with care, shipping soon

Here's a live snapshot of our progress. We're obsessing over the details so you don't have to.

4,218Commits shipped
99.2%Tests passing
99.98%Uptime in beta
24Engineers building
14Edge regions
SOC 2Compliance ready

Numbers updated in real-time from our CI/CD pipeline

About this block

Bento Stats DashboardPRO

Coming soon section with a bento-grid of live build stats like commits, test coverage, uptime, and team size. Perfect for building in public with transparent engineering metrics.

ComingSoon9: Bento Stats Dashboard

A centered coming-soon section that stacks a badge, heading, and description above a responsive grid of stat cards, each pairing an icon tile with a large value and label, with highlighted cards tinted in the primary color and a small footer note below.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

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

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/comingsoon9?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/comingsoon9.tsx.

Quick start

The installed file exports comingsoon9Demo alongside the block: the exact props behind the preview above. Spread it to get a working stats dashboard in one line.

tsx
import { ComingSoon9, comingsoon9Demo } from "@/components/beste/block/comingsoon9";

export default function Page() {
  return <ComingSoon9 {...comingsoon9Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Activity, GitCommit, Shield } from "lucide-react";
import { ComingSoon9 } from "@/components/beste/block/comingsoon9";

export default function Page() {
  return (
    <ComingSoon9
      badge={{ label: "Behind the scenes", variant: "secondary" }}
      heading="Built with care, shipping soon"
      description="A live snapshot of our progress while we obsess over the details."
      stats={[
        {
          icon: <GitCommit className="size-5" />,
          value: "4,218",
          label: "Commits shipped",
          highlight: true,
        },
        {
          icon: <Activity className="size-5" />,
          value: "99.98%",
          label: "Uptime in beta",
        },
        {
          icon: <Shield className="size-5" />,
          value: "SOC 2",
          label: "Compliance ready",
          highlight: true,
        },
      ]}
      labels={{ footerText: "Numbers updated in real-time from our pipeline" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Eyebrow badge rendered above the heading via shadcn Badge
headingstringSection heading
descriptionstringSupporting paragraph under the heading
statsStat[][]Stat cards rendered in the grid
labels{ footerText?: string }Small note rendered under the grid
classNamestringExtra classes for the outer <section>
ts
interface Stat {
  icon: React.ReactNode;
  value: string;
  label: string;
  highlight?: boolean;
}

Behavior notes

  • Each card branches on stat.highlight: highlighted cards use a bg-primary/5 border-primary/20 surface with a bg-primary/10 text-primary icon tile, while the rest use bg-card with a muted tile.
  • Every card carries the caller-supplied icon node in a rounded tile above its value and label, with the value set in a large tracking-tight figure.
  • The stats grid renders only when stats.length > 0 and steps from grid-cols-2 to md:grid-cols-3; the footer note renders only when labels.footerText is set.
  • The badge, heading, and description each render only when their prop is present.
  • Every string is plain text with no inline markup parsing, so HTML passed in shows as escaped text.
  • Uses the shadcn Badge primitive for the eyebrow and lucide icons for the per-stat glyphs.

More Coming Soon blocks

View all Coming Soon
PRO

comingsoon48

Bento Launch Grid

A coming-soon bento grid with a large panel holding a wordmark, a monospace parenthetical eyebrow, a heading and a working email notify form, an image tile, and a dark social-proof tile with an avatar stack and waitlist count.

PRO

comingsoon6

Waitlist with Avatars

Coming soon section with an email waitlist input, stacked subscriber avatars, and a live join count. Perfect for building early traction and social proof before launch.

PRO

comingsoon8

Readiness Status Dashboard

Coming soon section with a status dashboard displaying service readiness with color-coded indicators for ready, in-progress, and planned states. Perfect for transparent launch communication.

PRO

comingsoon10

Dev Log Feed

Coming soon section with a chronological development log feed showing recent updates, commits, and milestones. Perfect for building in public and keeping the community engaged.

PRO

comingsoon12

Before vs After Comparison

Coming soon section with a side-by-side comparison table showing current limitations versus upcoming improvements. Perfect for SaaS upgrades and product relaunches.

PRO

comingsoon7

Launch Roadmap Timeline

Coming soon section with a vertical timeline showing launch phases, dates, and status indicators. Perfect for communicating a clear release plan and keeping users informed about upcoming milestones.