A customers management section powered by the data-table engine: avatar cells, status badges, sortable columns, keyword search, row selection with a live selected count, per-row action menus, pagination, and an export / add-customer toolbar.
A customer-management dashboard page built around a sortable, searchable customers table. Records show avatar cells, status badges, seat counts, and recurring revenue, all rendered by the Beste data-table component. It is a drop-in customers table dashboard for any Next.js / React admin, styled with shadcn/ui primitives for a clean admin table look.
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.
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
npx shadcn add "https://ui.beste.co/r/dashboard2?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/dashboard2?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/dashboard2.tsx, the reusable data-table engine to components/beste/component/data-table.tsx, and the shadcn/ui dependencies they need (button, badge, avatar, plus the table, checkbox, input, and dropdown-menu primitives the table composes).
The installed file exports dashboard2Demo alongside the block: the exact props behind the preview above, including the ten sample customer rows. Spread it to get a full-page customers table in one line.
import { Dashboard2, dashboard2Demo } from "@/components/beste/block/dashboard2";
export default function Page() {
return <Dashboard2 {...dashboard2Demo} />;
}Dashboard2 renders its own full-width <section> layout (heading, description, and the table), so it drops straight into a page. Replace dashboard2Demo with your own props once you are ready.
| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | "Customers" | Page heading above the table |
description | string | "Manage accounts, track plans, and monitor recurring revenue." | Sub-heading intro text |
customers | Customer[] | built-in demo rows | The records rendered in the table. Omit to keep the ten bundled demo customers |
The block takes no className prop; the outer <section> layout is fixed. Each row is a Customer:
type Customer = {
id: string;
name: string;
email: string;
avatar: string; // image URL for the avatar cell
company: string;
status: "Active" | "Trial" | "Churned";
mrr: number; // monthly recurring revenue, rendered as $-prefixed
seats: number;
joined: string; // pre-formatted date label, e.g. "Jan 4, 2026"
};customers defaults to a built-in set of ten demo rows, so the block renders a full populated table with no props at all.
The columns and table behavior are defined in the block and driven by data-table:
seats, mrr) sort numerically, the rest sort with a locale string compare. Seats and MRR are right-aligned.name is the Customer column value, company, status, seats, mrr, joined). Typing resets to page 1.pageSize={7} with Previous / Next controls and a "Page x of y" indicator; the buttons disable at the first and last page.status renders as a colored Badge: emerald for Active, amber for Trial, muted for Churned, each with a dark-mode variant."use client") because the table manages sort, search, selection, and pagination state.Avatar (a plain <img> under the hood), so no next.config images.remotePatterns setup is needed for remote avatar hosts.dashboard6
A project detail dashboard for staffing: sidebar + action topbar with a project actions menu, a project header with status pills, a five-up stat strip with project meta, functional pipeline sub-tabs, a search / recently-active toggle / filters-menu toolbar that live-filters the grid, and a responsive grid of nine talent cards with wishlist and invite toggles.
dashboard4
A project-management dashboard: sidebar + search topbar, a four-up project stats row with one highlighted card, a weekly project-analytics bar chart, a reminder card with a start-meeting action, a team-collaboration list, a project-progress radial gauge, and a focus time-tracker card.
dashboard9
A sales-CRM dashboard: sidebar + search topbar, pipeline KPIs, a four-stage kanban board of deal cards with owners and hot-lead flags, a revenue-vs-forecast area chart, a team-quota radial gauge, and a rep leaderboard with progress bars.
dashboard5
A split booking dashboard: a left panel with a top nav, functional tab bar, a Manage menu, a bento of revenue/occupancy/metric tiles and an image, toggleable active-booking cards, and a room-availability timeline; a right rail with a real month calendar (selectable days, booked-day dots) and a time-slotted day agenda.
dashboard3
An e-commerce analytics dashboard: sidebar + search topbar, a four-up KPI row with period deltas, a net-profit area chart, a repeat-rate radial gauge, a busiest-weekday bar chart, and a best-selling products data table.
dashboard7
A web-analytics console: sidebar + search topbar, a live realtime strip, an hourly sessions area chart, a daily-goal radial gauge, a channel-audience radar chart, a new-vs-returning line chart, and a sortable top-pages table.