sh4dcnv2 · atlas
← libraries

@dashboardblocks

Dashboard blocks for shadcn/ui: KPIs, charts, tables, funnels, heatmaps and full dashboards. Works with Base UI, Radix UI and React Aria, and every style and icon library.

250 components pro available react shadcn-cli MIT

Install this registry

shadcn (npm) npx shadcn@latest add https://www.dashboardblocks.com/r/registry.json
pnpm pnpm dlx shadcn@latest add https://www.dashboardblocks.com/r/registry.json
bun bunx shadcn@latest add https://www.dashboardblocks.com/r/registry.json
fetch registry curl -s https://www.dashboardblocks.com/r/registry.json

Components

250 total
Activity Feed component

Primitives for activity feeds: a list with connectors that line up with the markers, tinted icons by tone, an unread dot, relative times and "Today" and "Yeste…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/activity-feed.json
AI Usage component

Primitives for LLM usage: token cost at per-million prices with cached input billed separately, cache savings and hit rate, compact token and dollar formatting…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/ai-usage.json
Alerts component

Primitives for alerts: critical, warning, info and resolved severities written as coloured words, plus relative time formatting.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/alerts.json
Animated Number component

An animated number component.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/animated-number.json
Animated Wave component

An animated wave component.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/animated-wave.json
App Shell component

Primitives for app shells built on the shadcn sidebar: navigation sections from data with active links, badges and collapsible child links, a brand link, a wor…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/app-shell.json
Chart component

Chart components.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart.json
Auth component

Primitives for signing in and joining a workspace: a full-page frame with one narrow centred column, a one-time code input with a box per digit that handles pa…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/auth.json
Billing component

Primitives for subscription billing: billing dates, MRR movement from starting to ending MRR, net revenue retention, a waterfall chart of the movement and an i…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/billing.json
Block State component

Primitives for loading, refreshing, empty and error states: a skeleton, a dimmed frame that keeps its layout while it refreshes, a message with an action, and …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/block-state.json
Breakdown component

Primitives for part-to-whole breakdowns: a segmented 100% bar, legend keys and share formatting.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/breakdown.json
Chart Panel component

Primitives for full-size chart panels: tooltip, legend, axis defaults and an accessible data table.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel.json
Checklist component

Primitives for checklists and steppers: done, in progress, to do and skipped states, each with a marker shape and a status word, progress maths and wording tha…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/checklist.json
Table component

The parts every table is drawn with: rows, headers, row headers, group headers and cells that pad the edges of the table, numbers aligned to the end, a compact…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/table.json
Data Table component

Dashboard tables on TanStack Table: sorting, search, facet filters, pagination, row selection and column visibility, with inline bars, scrolling sideways when …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table.json
Command Menu component

Primitives for a command menu: a search dialog of pages, actions and records that filters as you type or shows results you fetch, with descriptions, shortcuts …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/command-menu.json
Comparison component

Primitives for comparisons: deltas, a two-proportion test with a 95% interval, diverging bars, dumbbells and an interval bar.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/comparison.json
Dashboard Header component

Primitives for dashboard headers: a date range preset menu, a compare switch, filter menus, filter chips and an export menu.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-header.json
Deployments component

Primitives for deployments: ready, failed, building, queued and rolled back statuses written as coloured words, duration and short commit formatting, DORA band…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/deployments.json
Distribution component

Primitives for distributions: quantiles from raw values or from binned counts, binning, a five-number summary, the share above a limit, round ticks, a histogra…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/distribution.json
Error Pages component

Primitives for error and interruption pages: a full-page frame with your brand, a centred message, an optional code and icon, actions and footer links, plus UT…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/error-pages.json
Feedback component

Primitives for customer feedback: a rating summary with the average and share of each rating, CSAT as the share of 4 and 5 ratings, net sentiment, stars filled…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/feedback.json
Flow component

Primitives for flows: a recharts Sankey chart that keeps each flow's colour downstream, draws drop-offs muted and highlights what a hovered node or band connec…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/flow.json
Forecast component

Primitives for forecasts: a straight-line fit with a prediction interval that widens with the horizon, run-rate projection, date-to-target solving, a striped p…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/forecast.json
Forms component

Primitives for forms without a form library: a form state hook with validation on blur and submit, server errors, dirty and submitting flags, a titled form sec…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/forms.json
Format lib

en-US formatting for numbers, compact numbers, currency, percentages from ratios, signed differences with a real minus, percentage points, UTC date ranges and …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/format.json
Funnel component

Primitives for conversion funnels: step conversion maths, the biggest drop and a stage bar.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/funnel.json
Gauge component

Primitives for gauges and scores: a semicircle or three-quarter arc gauge built as a meter, with labelled bands, a target tick and an animated fill, band label…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/gauge.json
Geo component

Primitives for location metrics: a US state tile map and a dotted world map from an embedded land mask with markers sized by value, both with the shared chart …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/geo.json
Goals component

Primitives for goals and targets: pace against a straight line to the target, a progress bar with an expected-by-now marker and the projection hatched, and the…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/goals.json
Heatmap component

Primitives for heatmaps: a single-hue colour scale, a keyboard-readable grid of squares or dots with the shared chart tooltip, optional bars above its columns,…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/heatmap.json
Icon component

An icon component.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/icon.json
Insights component

Primitives for insights: positive, negative, neutral and anomaly kinds, each named by a coloured word, sentences with their metrics picked out in colour, and a…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/insights.json
Inventory component

Primitives for inventory: out of stock, low, in stock and overstock from on-hand stock and the reorder point, each as a coloured label, days of cover, a reorde…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/inventory.json
KPI component

Primitives for KPIs: a block with a top rule, a value that counts up with the final value read out, the change vs the previous period written as a sentence, in…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kpi.json
KPI Provenance component

A button beside a number that shows how it was computed: what’s counted, the date range, the filters, the query’s name and a link to the rows.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kpi-provenance.json
Leaderboard component

Primitives for composing ranked lists and leaderboards.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/leaderboard.json
Link component

A link provider that makes every primitive render your router's link, for client-side navigation, with plain anchors as the default.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/link.json
Metric List component

Primitives for compact lists of metrics: a row with value, the change written as words and a sparkline, a bar against a target with its status, and value forma…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/metric-list.json
Notifications component

Primitives for notifications: a bell with an unread count that opens a panel, a header with an action, and a notification row that opens as a whole while its o…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/notifications.json
Page Header component

Primitives for page headers: a heading with a badge, media and description, actions that wrap, a row of key numbers, a back link, section tabs that put what do…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/page-header.json
Pipeline component

Primitives for pipelines of work in flight: stage summaries with count, value and weighted value, days in stage with a stuck state, a stage header, an item car…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/pipeline.json
Progress Bar component

A progress bar component.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/progress-bar.json
Realtime component

Primitives for live data: an interval hook, a seeded random generator for demo streams, a rolling window, a pulsing live label that stays still for reduced mot…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/realtime.json
Record Detail component

Primitives for a record's page or panel: a layout with a details column beside the main content, the number that leads the record, titled sections under a rule…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/record-detail.json
Retention component

Primitives for retention: rates per cohort, a size-weighted average curve, where the curve levels off, the growth accounting quick ratio, a shaded cohort table…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/retention.json
Ring component

A ring component.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/ring.json
Scatter component

Primitives for scatter plots and matrices: a least-squares line with the correlation coefficient described in words, a median, categorical colours in a fixed o…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/scatter.json
Schedule component

Primitives for schedules: date helpers that take a fixed now and a time zone, an event row, urgency labels and badges, and a keyboard-navigable month calendar.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/schedule.json
Security component

Primitives for security: info, warning and critical audit severities and passing, attention and failing check results as coloured words, a desktop or phone dev…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security.json
Settings component

Primitives for settings pages: owner, admin, member and viewer roles with what each can do and a menu to pick one, a row that puts a label and description besi…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/settings.json
Spend component

Primitives for spend and budgets: pace against an even spend of the budget with a projected total and a status, runway at the current net burn, a budget bar wi…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/spend.json
Option Select component

A select for one value from a list of options, with a placeholder, built on the shadcn Select so its menu follows your style and font.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/option-select.json
Details component

Two or three short facts about one subject on one line, joined by a middle dot that screen readers skip and that never ends a line.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/details.json
Status Label component

A status written as a coloured word: good, warning, bad, info and neutral tones in the shades every block uses.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status-label.json
Stat Group component

Primitives for a row of related stats: ruled columns, labels, light values, the change vs the previous period as a sentence or an arrow, and sparklines.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/stat-group.json
Status component

Primitives for service status: status levels written as a coloured dot and word, a legend, and a 90-day uptime bar with a tooltip for each day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status.json
Team component

Primitives for people: avatars with initials and a colour picked from the name, presence as a dot on the avatar and a coloured word, and an avatar stack with a…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team.json
Timeline component

Primitives for timelines on recharts: a UTC date scale, week, month and quarter ticks, days between dates, done, in progress, planned and at risk statuses each…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/timeline.json
Trend component

A trend indicator component.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/trend.json
Usage Meter component

Primitives for usage against a limit: within limit, nearing it, critical and over limit, each with a label (a coloured word, or a badge with an icon), the shar…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter.json
Kanban component

Primitives for kanban boards: a board of columns with drag and drop by mouse, touch and keyboard and announced moves, columns with counts, WIP limits that warn…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kanban.json
Comments component

Primitives for comments: threads with one level of replies joined by a line, a composer that suggests people after @ and submits with ⌘ Enter, highlighted ment…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/comments.json
Calendar component

Primitives for calendars: a toolbar with today, previous, next and a view switch, a keyboard-navigable month grid with event chips, multi-day bars and "+N more…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/calendar.json
Files component

Primitives for files: a dropzone around a real file input that checks type, size and count, a provider-agnostic upload hook with progress, cancel, retry and a …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/files.json
Disclosure component

A line of muted text with a chevron that shows or hides what is under it, such as a tool call’s input and output or a model’s reasoning.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/disclosure.json
Highlighted Code component

Code in a code block with copy, highlighted with Shiki in the theme’s own colours: syntax muted, values in the chart colour, and any text you name marked, such…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/highlighted-code.json
AI Chat component

The parts every AI block shares: message types that take the Vercel AI SDK’s useChat and UIMessage as they are, Markdown from a model drawn with safe links and…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/ai-chat.json
AI Assistant component

Primitives for AI chat that take the Vercel AI SDK’s useChat as it is: a scrolling log that puts each new question at the top with its reply growing below, ope…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/ai-assistant.json
Invoice component

Primitives for printable documents such as invoices, receipts, quotes and packing slips: totals that add up to the cent with discounts, tax per rate, shipping …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/invoice.json
Onboarding component

Primitives for first-run setup: a full-page frame with step progress and Back, Skip and Continue actions that moves focus to each new step, radio and checkbox …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/onboarding.json
kpi-01 component

A single value with its change and what it is compared with.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kpi-01.json
kpi-02 component

A value with its change written beside the label, for a tight grid of KPIs.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kpi-02.json
kpi-03 component

A rate beside its previous value, with the change in percentage points.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kpi-03.json
kpi-04 component

A value with its change and a button beside it that shows the date range, filters and query behind the number.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/kpi-04.json
progress-kpi-01 component

Progress to a monthly target, with the projected total hatched ahead of it and a line where an even pace would be by today.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/progress-kpi-01.json
progress-kpi-02 component

The share of work done, as one bar split by status with a count for each.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/progress-kpi-02.json
progress-kpi-03 component

A count against a goal as a ring, with how many are left and how many a day that takes.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/progress-kpi-03.json
bar-chart-kpi-01 component

The week's total with a bar for each day and the change on the week before.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/bar-chart-kpi-01.json
bar-chart-kpi-02 component

Each day's value with its goal marked on the bar, the share of the goal reached and how many days met it.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/bar-chart-kpi-02.json
line-chart-kpi-01 component

This week as a filled area over last week as a dashed line, with the days it fell behind.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/line-chart-kpi-01.json
area-chart-kpi-01 component

Gross profit with its margin, and profit inside revenue by day, with the best margin day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/area-chart-kpi-01.json
area-chart-kpi-02 component

A large total with an area chart along the bottom, as a hero number at the top of a dashboard.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/area-chart-kpi-02.json
activity-feed-01 component

What people did across a workspace, newest first and grouped by day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/activity-feed-01.json
activity-feed-02 component

The history of one record as a timeline, with each change shown from the old value to the new one and comments quoted in full.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/activity-feed-02.json
activity-feed-03 component

Notifications in All, Mentions and Unread tabs, with each marked read when opened or all at once.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/activity-feed-03.json
activity-feed-04 component

A week of activity as daily bars with the busiest day labelled, by kind, with the most active people.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/activity-feed-04.json
activity-feed-05 component

Slack and GitHub activity in one timeline, with quoted messages and actions such as starting a review.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/activity-feed-05.json
usage-meter-01 component

An API quota with its status, when it resets and the usage it is on pace for, with the date it would hit the limit.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-01.json
usage-meter-02 component

Storage used as a ring in its status colour, with the space that is free.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-02.json
usage-meter-03 component

Usage against what the plan includes, with the overage past the limit and what it will cost.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-03.json
usage-meter-04 component

A credit balance with the days left, the date it runs out and recent daily use against the average.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-04.json
usage-meter-05 component

Storage split into categories as one segmented bar, with each category's size and share, and the space that is free.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-05.json
usage-meter-06 component

Every limit on a plan, flagging the ones nearly reached and prompting an upgrade.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-06.json
usage-meter-07 component

What is left as a liquid that drains as usage grows, turning orange and then red.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-07.json
usage-meter-08 component

What is left as a round wave that drains as usage grows, with used, free and days until reset below.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/usage-meter-08.json
leaderboard-01 component

Ranked rows with a background bar sized relative to the leader.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/leaderboard-01.json
leaderboard-02 component

People ranked by revenue with a bar to their quota and the change since the last period.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/leaderboard-02.json
leaderboard-03 component

The top three on a podium sized by their totals, with the rest of the field listed below.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/leaderboard-03.json
leaderboard-04 component

Products ranked by revenue with how far each moved in the ranking since the last period.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/leaderboard-04.json
leaderboard-05 component

A ranked list that can be reversed and expanded to show every entry.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/leaderboard-05.json
chart-panel-01 component

This period's area against the previous period's dashed line, with the change written as a sentence.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel-01.json
chart-panel-02 component

Tabs for related metrics, each showing its total and change, over a chart of the chosen one with its average.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel-02.json
chart-panel-03 component

Monthly totals as stacked bars split by category, with the average and the latest total labelled.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel-03.json
chart-panel-04 component

A single series of bars with the latest period highlighted and labelled, against a goal line.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel-04.json
chart-panel-05 component

A donut splitting a total into parts, with each value and share listed beside it.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel-05.json
chart-panel-06 component

Several ordered lines, such as percentiles, in one hue from light to full strength, labelled at their ends, against an SLO line.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/chart-panel-06.json
breakdown-01 component

A single 100% bar splitting a total into categories, with each value and share listed below.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/breakdown-01.json
breakdown-02 component

One bar per group showing its mix of categories, sorted by a chosen category's share, which is labelled on every row.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/breakdown-02.json
breakdown-03 component

A 10 by 10 grid of squares where each square is 1% of the total, coloured by category.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/breakdown-03.json
breakdown-04 component

How each category's share of a total moved between two periods, as a dot for each period joined by a line.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/breakdown-04.json
funnel-01 component

Each stage as a bar sized against the first, with the conversion at each step and overall.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/funnel-01.json
funnel-02 component

Stages as columns against a 0 to 100% axis, each topped by the share that left at that step, with the biggest drop named.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/funnel-02.json
funnel-03 component

A vertical stepper through the stages that calls out the step with the biggest drop-off.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/funnel-03.json
funnel-04 component

Two segments as lines through every stage, each as a share of its first step, with the gap between them shaded.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/funnel-04.json
status-01 component

Each service with its current status, the worst one above the title, and a sentence naming the services that are not operational.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status-01.json
status-02 component

Ninety days of daily status for each service as a row of bars, with a tooltip for any day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status-02.json
status-03 component

An active incident with its severity, affected components and a timeline of updates.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status-03.json
status-04 component

Regions, each with its status, p95 latency bar and error rate.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status-04.json
status-05 component

One service's uptime, incident count and downtime, with its daily history and recent incidents.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/status-05.json
stat-group-01 component

Metrics side by side, each with its change written as a sentence.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/stat-group-01.json
stat-group-02 component

A row of metrics, each with its change and a 14-day sparkline, under a sentence saying how many improved.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/stat-group-02.json
stat-group-03 component

A row of metrics where picking one charts it by day against the previous period.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/stat-group-03.json
stat-group-04 component

Five metrics in a slim row with their changes, wrapping to two columns when narrow.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/stat-group-04.json
stat-group-05 component

Four metrics, each with a bar for this period over a bar for the one before.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/stat-group-05.json
dashboard-header-01 component

A dashboard header with a title, date range presets, a compare switch, removable filter chips, an add filter menu and export.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-header-01.json
dashboard-header-02 component

A short dashboard header with a title, a date range menu and an export button.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-header-02.json
dashboard-header-03 component

A dashboard header with date range presets as a segmented control, a compare switch and a filter chip.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-header-03.json
dashboard-header-04 component

A dashboard header with a description, the time of the last update and a refresh button beside the date range and export.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-header-04.json
data-table-01 component

A table of rows with sortable column headers.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table-01.json
data-table-02 component

Revenue by product, each with a bar scaled to the top product and its share of the total.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table-02.json
data-table-03 component

Campaign conversions and cost per conversion, each with its change and a 14-day sparkline.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table-03.json
data-table-04 component

Services in a table with their status, latency and error rate, worst status first.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table-04.json
data-table-05 component

A table of recent orders split into pages of five, with controls to move between them.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table-05.json
data-table-06 component

A searchable table with status and plan filters, a column menu, page sizes and row selection to export or email.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/data-table-06.json
heatmap-01 component

When visitors arrive, as a grid of weekday by hour, darker where there are more.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/heatmap-01.json
heatmap-02 component

The share of each weekly signup cohort still active in each week after signup, as a shaded grid.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/heatmap-02.json
heatmap-03 component

A year of daily values as a calendar grid, darker on busier days.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/heatmap-03.json
heatmap-04 component

The p95 latency of each endpoint by hour over the last day, darker where it is slower.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/heatmap-04.json
states-01 component

Grey placeholders shaped like a row of stats, shown while data loads so nothing shifts when it arrives.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/states-01.json
states-02 component

A chart that stays in place at reduced opacity while it refreshes, with an updating indicator in the header.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/states-02.json
states-03 component

A filtered table with no matching rows, explaining why it is empty and offering a way out.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/states-03.json
states-04 component

A chart that loads its own data and, when the request fails, says so where the number and the chart go.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/states-04.json
Store dashboard block

A store dashboard: header filters scope stats, revenue, channels, products, a checkout funnel and month-to-date revenue, with low stock alongside.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-01.json
SaaS dashboard block

A SaaS dashboard: metric tabs, an activity heatmap, MRR by region, MRR movement, retention milestones and service status, filtered by plan.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-02.json
Web analytics dashboard block

A web analytics dashboard: traffic tabs, visitors right now, a traffic flow, top pages, top countries and browsers, filtered by device.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-03.json
CRM dashboard block

A CRM dashboard: sales stats, open pipeline by stage, monthly bookings, lead conversion, a quarter forecast by rep, deal activity and stuck deals, filtered by …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-04.json
DevOps dashboard block

A DevOps dashboard: live throughput, delivery performance, response time percentiles, open alerts, uptime, build health and recent deployments, filtered by ser…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/dashboard-05.json
goals-01 component

One target with an expected-by-today marker, the projection at the current pace hatched on the bar, and what is left to do each day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/goals-01.json
goals-02 component

Several goals for the same period, each with its own pace.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/goals-02.json
goals-03 component

Cumulative progress this month, projected to the end of the month at the current daily rate, with the day it reaches the target or how far short it ends.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/goals-03.json
goals-04 component

Small daily goals as rings, with what is left to do or how far past the goal each one is.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/goals-04.json
comparison-01 component

Each metric this period and last, with the difference and the change, under a sentence saying how many improved.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/comparison-01.json
comparison-02 component

The lift of a variant over the control, with a 95% confidence interval drawn against zero and what it means.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/comparison-02.json
comparison-03 component

The net change, then the change in each segment as bars either side of zero, from the biggest gain to the biggest drop.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/comparison-03.json
comparison-04 component

Two values per row on a shared scale, a hollow dot for before and a filled one for after, with the rows that got worse in grey.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/comparison-04.json
alerts-01 component

Open alerts, most recent first, each with a button to acknowledge it.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/alerts-01.json
alerts-02 component

A metric over the last hour against its threshold line, with the current value, the peak and actions to take.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/alerts-02.json
alerts-03 component

A table of alert rules with their conditions, severities and channels, and a switch to pause or resume each one.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/alerts-03.json
alerts-04 component

A slim strip with open alerts by severity and the latest one, for the top of a dashboard.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/alerts-04.json
geo-01 component

Revenue by US state as a tile map on a single-hue scale, with the total and the top five states.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/geo-01.json
geo-02 component

The leading countries with flags, values and shares, and the rest summed into one row.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/geo-02.json
geo-03 component

Active users by city right now as markers sized by value on a dotted world map, with the busiest city named.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/geo-03.json
geo-04 component

Revenue split across regions, each with its share and its change on the previous quarter.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/geo-04.json
billing-01 component

Starting to ending monthly recurring revenue as a waterfall chart, with ending MRR against the start of the month, net new revenue and net revenue retention.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/billing-01.json
billing-02 component

The current plan and its price, when it renews, the next invoice and the payment method on file, with actions to manage them.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/billing-02.json
billing-03 component

Recent invoices with their status and amount, what is outstanding and a PDF download for each one.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/billing-03.json
billing-04 component

Monthly and annual recurring revenue, revenue per account and net revenue retention, each with its change from the previous month.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/billing-04.json
billing-05 component

Plans side by side, monthly or yearly, with seats, what is due today and what a downgrade takes away.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/billing-05.json
insights-01 component

A list of plain-language insights, each with its kind as a coloured word, its topic, the key figures picked out, an optional line on the drivers and a link to …

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/insights-01.json
insights-02 component

An unusual reading against the range it was expected to fall in, with the days outside it shaded, the worst day labelled on the chart, the explanation and like…

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/insights-02.json
insights-03 component

What contributed to a change, as bars either side of zero, with a sentence naming the biggest driver and the biggest drag.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/insights-03.json
insights-04 component

A short weekly summary with a headline, three takeaways and buttons to say whether it helped.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/insights-04.json
pipeline-01 component

A board with a column for each stage showing its item count and total value, and a card for each item that can be moved from its menu.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/pipeline-01.json
pipeline-02 component

Open value across stages, with each stage as a segment sized by value or by count.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/pipeline-02.json
pipeline-03 component

Items that have been in a stage longer than expected, longest first, with how long they have waited and who owns them.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/pipeline-03.json
pipeline-04 component

Closed and open deals weighted by the chance each stage closes, per owner, against their quota.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/pipeline-04.json
schedule-01 component

Upcoming events grouped by day, as Today, Tomorrow and then weekdays, with the event in progress marked.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/schedule-01.json
schedule-02 component

A month calendar with a dot on each day that has events, and a list of the events on the selected day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/schedule-02.json
schedule-03 component

Deadlines and renewals in date order, each with a countdown and an urgency badge.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/schedule-03.json
schedule-04 component

The next seven days on a shared time axis, with how many events each day holds and how much of it is booked.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/schedule-04.json
team-01 component

A list of members with their role, whether they are online and when they were last active.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team-01.json
team-02 component

Work assigned to each person against their capacity on a shared scale, with anyone over capacity flagged and listed first.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team-02.json
team-03 component

How many people are online, with their avatars and the team split by presence.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team-03.json
team-04 component

Who is on call now and until when, who is next, and the rest of the rota.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team-04.json
team-05 component

A grid of what each role can do, with permissions in rows and roles in columns, unsaved changes highlighted and a save bar that shows once something changes.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team-05.json
team-06 component

A share panel for inviting people with view or edit access, changing or removing it, and choosing who the link works for.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/team-06.json
checklist-01 component

Setup steps with a progress bar, where each step expands to show what it involves and the current step has its action.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/checklist-01.json
checklist-02 component

The stages of a multi-stage setup as a row of rules, side by side when wide and stacked when narrow.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/checklist-02.json
checklist-03 component

A small block with how many setup steps are done and the next one, to bring people back to finish.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/checklist-03.json
checklist-04 component

Tasks grouped by team with owners, due dates and checkboxes, with overdue and due-soon tasks written in colour.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/checklist-04.json
gauge-01 component

A net promoter score on its full −100 to 100 scale, with the split of promoters, passives and detractors.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/gauge-01.json
gauge-02 component

A health score weighted from its contributing factors, marked on poor, fair and good bands, with the factors that pull it down most.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/gauge-02.json
gauge-03 component

CPU, memory and disk as small gauges, each in the colour of its band with warning and critical thresholds marked.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/gauge-03.json
gauge-04 component

A satisfaction score on an arc with a target tick, the change since last period and the gap to target.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/gauge-04.json
metric-list-01 component

A list of metrics with their change and a 14-day sparkline each.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/metric-list-01.json
metric-list-02 component

Metrics grouped into sections, each with a header and a count of how many improved.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/metric-list-02.json
metric-list-03 component

Metrics against their targets, each with a bar, a tick at the target and a status.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/metric-list-03.json
metric-list-04 component

A list of metrics where picking one charts it beside the list, against its 30-day average.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/metric-list-04.json
forecast-01 component

Weekly actuals continuing into a dashed forecast, with a shaded 80% range and a marker for today.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/forecast-01.json
forecast-02 component

The running total heading for a goal line, with the forecast, its 80% range, the deadline and the date it gets there.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/forecast-02.json
forecast-03 component

Month to date, projected to the end of the month at the daily run-rate, with what is needed per day to hit the target.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/forecast-03.json
forecast-04 component

Low, base and high growth scenarios from the last actual, as a chart and a table with when each one reaches the target.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/forecast-04.json
retention-01 component

A retention triangle with a row per cohort and a weighted average row, shaded by share.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/retention-01.json
retention-02 component

Every cohort's retention curve, with one highlighted against the average and where the average levels off.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/retention-02.json
retention-03 component

Day 1, 7 and 30 retention for the latest cohort, with the change against the cohort before written out.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/retention-03.json
retention-04 component

Users gained above the axis and lost below it, with the net change and the quick ratio.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/retention-04.json
distribution-01 component

Response times in buckets that widen as times grow, with p50, p95 and p99 lines, the buckets over the target in red and the share over it as the headline.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/distribution-01.json
distribution-02 component

A box and whiskers per group on a shared axis, to compare spread and median across groups.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/distribution-02.json
distribution-03 component

The median, mean and percentiles of a set of values, with a note when a long tail pulls the mean away.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/distribution-03.json
distribution-04 component

This week's distribution against last week's as a dashed line, with both medians and the change at the median and p90.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/distribution-04.json
spend-01 component

Spend so far against the month's budget, with the projected month end and what is left to spend per day.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/spend-01.json
spend-02 component

The total spent and where it is heading, then one budget bar per service, naming the ones over budget.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/spend-02.json
spend-03 component

Monthly spend as bars against a stepped budget line, with months over budget in red and labelled with the overspend, and the year-to-date variance.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/spend-03.json
spend-04 component

The cash balance, the average net burn and the months of runway left, with the balance projected to the month it runs out.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/spend-04.json
flow-01 component

Sessions from each source through the landing page, to signing up, browsing on or bouncing.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/flow-01.json
flow-02 component

Where visitors go in their first pages after landing, with the ones who left at each step.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/flow-02.json
flow-03 component

Revenue streams into total revenue, then out to costs and profit, with each part's share of revenue.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/flow-03.json
flow-04 component

The most common routes as steps, ranked by how many people took them, with how often each reaches the goal.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/flow-04.json
timeline-01 component

Projects grouped by team, each a bar from start to end filled to its progress, with a line for today.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/timeline-01.json
timeline-02 component

A launch plan as a list on a rail, with the next milestone highlighted and how soon or how late each one is.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/timeline-02.json
timeline-03 component

Every release on one line, sized as major, minor or patch, with the median gap and when the next one is due.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/timeline-03.json
timeline-04 component

Each phase's plan as a dashed outline with what actually happened as a bar beneath it, and how many days it slipped.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/timeline-04.json
realtime-01 component

Active users now, page views per second over the last minute and the pages with the most people on them.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/realtime-01.json
realtime-02 component

Requests per second over the last five minutes, with the peak, the error rate and errors on their own scale.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/realtime-02.json
realtime-03 component

Orders, sign-ups, refunds and messages as they arrive, newest first, with a pause button.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/realtime-03.json
realtime-04 component

Running totals since midnight against yesterday at the same time, with orders per hour beside yesterday as a dashed line.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/realtime-04.json
feedback-01 component

The average rating as stars, the number of ratings and the share of each star, with the change on the last period and the share rating 4 or 5.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/feedback-01.json
feedback-02 component

A diverging bar chart of negative and positive mentions for each topic, sorted by net sentiment, with the best and worst topic in a sentence.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/feedback-02.json
feedback-03 component

The latest reviews with their rating and source, flagging low ratings still waiting for a reply.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/feedback-03.json
feedback-04 component

Weekly customer satisfaction against a target, with the change on the week before and how many weeks met it.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/feedback-04.json
deployments-01 component

The latest builds, each with its commit, environment, author, duration and status.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/deployments-01.json
deployments-02 component

What each environment is running, and how many commits are waiting to be promoted to the next one.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/deployments-02.json
deployments-03 component

The four DORA delivery metrics, each with its performance band and the change on the previous period.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/deployments-03.json
deployments-04 component

The latest runs of each pipeline as a strip of results, with the pass rate and median duration.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/deployments-04.json
scatter-01 component

Pages plotted by load time and conversion rate, grouped by section, with a trend line and how strong the link is.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/scatter-01.json
scatter-02 component

Features plotted by usage and satisfaction, split into four labelled quadrants with each point named.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/scatter-02.json
scatter-03 component

Campaigns plotted by cost per acquisition and conversion rate, sized by spend and coloured by channel, against a target cost.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/scatter-03.json
scatter-04 component

Open risks on a likelihood by impact grid, shaded by level, with the risks in a selected cell listed.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/scatter-04.json
security-01 component

Failed and blocked sign-ins per day against a typical day, with the failure rate, the spike in blocked attempts called out, and two-factor coverage.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security-01.json
security-02 component

Changes to access, keys and settings, newest first, with a switch to show warnings only.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security-02.json
security-03 component

The devices signed in to an account, with where and when each was last active, and buttons to sign them out.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security-03.json
security-04 component

A security score on a banded gauge, built from workspace checks, with failing checks first and what to do about each.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security-04.json
security-05 component

Setting up two-factor sign-in with an authenticator app, security keys and passkeys, and recovery codes shown once.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security-05.json
security-06 component

A single sign-on connection with details to copy into your identity provider, verified domains, and a switch to require it.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/security-06.json
inventory-01 component

Items at or near their reorder point, soonest to run out first, with how much to order and which will run out before an order arrives.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/inventory-01.json
inventory-02 component

Units stored against capacity in each warehouse, with what arrives this week and which will be nearly full.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/inventory-02.json
inventory-03 component

Every SKU by stock status, with the value of stock on hand and how many times a year it turns over.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/inventory-03.json
inventory-04 component

One item's stock day by day at its current demand, with incoming orders, the reorder point and when it runs out.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/inventory-04.json
ai-usage-01 component

Tokens per day stacked by model against the daily average, with the total cost and the cost per million tokens; hovering a day splits it by model.

npx shadcn@latest add https://www.dashboardblocks.com/r/{style}/ai-usage-01.json