Analytics dashboard
A React block (a whole screen) in Beamline's Blocks category.
A SaaS overview in the app shell, fed by your metrics hook: range and segment filters drive KPIs, new and expansion revenue, channels, plan mix, uptime and the activity feed, with loading placeholders and a failed state with retry.
Use it for
- The home screen of a SaaS or internal tool: a handful of KPIs, one trend, a ranked list and recent activity under one set of filters. Pass `useData`, a hook around your metrics API returning `AnalyticsData` for a range and segment.
Not for
- Exploring a large dataset row by row (data-grid, or the crm block). Real-time market screens (trading-terminal).
- A home for another kind of business (invoices, orders, bookings): its data is a SaaS's (MRR, plans, uptime); compose metric-card + area-chart + bar-list instead.
Anatomy
- app shell (the app's own nav and top-bar actions)
- page header (title, segment, range, export when onExport is given)
- KPI row
- revenue chart
- channels bar list
- uptime tracker
- plan mix
- activity timeline
States
- loading (placeholders keep the layout)
- failed (error with Try again)
- filtered by range
- filtered by segment
- unmeasured KPI or channel (hatched, with a note)
- sidebar collapsed (⌘B)
Keyboard
- ⌘B / Ctrl+B collapses the sidebar
- every filter is a native control reachable by Tab
- chart legend items toggle series with Enter
Motion
KPI values roll on change (slot text); charts redraw without layout shift.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
useData | (query: AnalyticsQuery) => { data: AnalyticsData | null; error?: Error | null; retry?: () => void } | — | Your metrics source; data null while loading. |
nav / page | AppShellNavGroup[] / string | — | The app's navigation and this page's title. |
segments / defaultSegment / defaultRange | { value, label }[] / string / DateRange | — | |
onExport | (query, data) => void | — | Shows the Export button. |
actions | ReactNode | — | Top-bar actions (search, notifications, user menu). |
workspace | string | — | |
className | string | — | |
classNames | AnalyticsDashboardClassNames | — | |
style / ref | CSSProperties / Ref<HTMLDivElement> | — |
Built from
- app-shell
- segmented-control
- date-range-picker
- button
- metric-card
- area-chart
- bar-list
- tracker
- category-bar
- timeline
- alert
- skeleton
Dependencies
d3-shape, lucide-react, motion
Import
import { AnalyticsDashboard } from "@/blocks/analytics-dashboard/analytics-dashboard";
Get it
Analytics dashboard is part of Beamline: 190 React components and screens your coding agent (Claude Code, Codex, Cursor or any MCP client) installs into your app through Beamline's MCP server, as a ready-built package or as plain React source you can change. $49 one payment (regular $200), no subscription, a year of updates, one licence for your whole team. Get Beamline · Connect your agent
More in Blocks
- AI agent workspace: Threads, a conversation with streamed reasoning, cited answers and a plan that waits for approval then runs step by step, and an artifacts panel with…
- Auth page: The whole sign-in / sign-up route: product mark, a quiet dotted field with a light that follows the mouse, an optional notice, the SignIn and SignupForm…
- Changelog feed: An in-app What's new page: release notes grouped by month with tags, versions, pictures and details, a tag filter with counts, entries since your last…
- CRM pipeline: A pipeline screen: KPIs and stage mix derived from a virtualised deals grid with inline edit, bulk moves and delete with undo; a row opens the deal in a…
- Empty states: The five empty moments every product has, written and wired: first use with a first step, no results with the filters to clear, an error with retry and a…
- Page header: The top of a record or project page: breadcrumb, title with status, description and meta, a primary action with secondary actions that fold into a More…
- Plan comparison: Plans side by side against every feature: prices that roll between monthly and yearly, the current and recommended plan marked, a header that stays in…
- Settings: Profile and workspace settings with one draft and real save handler. Personal mode omits workspace data; optional profile fields share validation…
- Sign in: The sign-in card: email and password, a one-time code or a magic link, passkeys and single sign-on, with validation, progress, errors and a signed-in…
- Sign up form: The account creation card: single sign-on, name, work email and a password with strength and Caps Lock hints, terms consent, inline validation, your…
- Step form: The finished frame for any multi-step form you compose — onboarding, intake brief, questionnaire, booking, application: a wide card with progress, the…
- Trading terminal: A perpetuals terminal on your feed and your account: ticker tape, market header with funding, candles, book / trades / depth, order ticket, account…
- Voice agent: A voice agent in three layouts on one session: a support panel that mixes typing and talking, a call screen with the agent's orb and one call button, and…