Skip to content

Recipe R06

The Console

An operations dashboard: live numbers, ninety days of uptime, deployments and the day's activity.

Teams building an internal dashboard, admin panel or the overview page of a developer product.

The page, section by section

  1. 01

    One indicator slides between rows, stepping inward for nested items, so where you are is always drawn.

  2. 02

    Key numbers

    Metric Morph

    Only the digits that changed turn over, coloured by whether the change is good; error rate and latency are inverted.

  3. 03

    Ninety days per service as bars you can scrub; incidents carry their one-line explanation.

  4. 04

    Deployments

    Focus Table

    Sortable, keyboard-navigable, with the rows around the focused one receding; compact records on narrow screens.

  5. 05

    Time has weight: gaps grow with the time between events, and repeated actions fold into one line.

The build brief

Paste it into Claude, Cursor or ChatGPT with the component files, and ask for your own version: your name, your work, your product. It names each component and where to copy it from.

# Build brief: The Console

An operations dashboard: live numbers, ninety days of uptime, deployments and the day's activity.
For: Teams building an internal dashboard, admin panel or the overview page of a developer product.

## Direction
- Near-black (#09090b) with raised panels (#111114) and hairline rings; colour is reserved for status: green ready, amber building, red failed.
- Numbers change in place and say how they changed; nothing blinks, nothing pulses for attention.
- Density where it helps: a table that focuses the row you're on and becomes records on a phone, an activity log where the gaps show how quiet the afternoon was.
- The sidebar is the only navigation; on a phone it goes away and the page is one column.


## Page map
1. Navigation: Workspace Sidebar. One indicator slides between rows, stepping inward for nested items, so where you are is always drawn.
2. Key numbers: Metric Morph. Only the digits that changed turn over, coloured by whether the change is good; error rate and latency are inverted.
3. Uptime: Uptime Ribbon. Ninety days per service as bars you can scrub; incidents carry their one-line explanation.
4. Deployments: Focus Table. Sortable, keyboard-navigable, with the rows around the focused one receding; compact records on narrow screens.
5. Activity: Activity Stream. Time has weight: gaps grow with the time between events, and repeated actions fold into one line.

## Components
Copy each component's files from its page (Code tab) into your project before you start, and use them as given: change props and content, not internals.
- Workspace Sidebar: https://tryvitrine.dev/components/workspace-sidebar (A SaaS app sidebar where one active indicator travels through the tree — down the list, into a sub-section and back out — so you can see where you moved from, not just where you are.)
- Metric Morph: https://tryvitrine.dev/components/metric-morph (A live metric where only the place values that changed move.)
- Uptime Ribbon: https://tryvitrine.dev/components/uptime-ribbon (A status-page ribbon of ninety thin days: scrub along it and a tooltip rides your pointer with that day's uptime and incidents, while the bars under your hand lift like keys.)
- Focus Table: https://tryvitrine.dev/components/focus-table (A data table with depth of field: the row you're on stays sharp while the rows around it fade by distance, and the grid itself stays put.)
- Activity Stream: https://tryvitrine.dev/components/activity-stream (An activity log where time has weight: the space between two events grows with the time between them, so a busy half hour reads dense and a quiet afternoon reads as a pause.)

## Build
- Next.js (App Router), TypeScript, Tailwind CSS. No extra UI libraries.
- Write real content for this site: real names, dates, numbers and sentences. No lorem ipsum, no "Feature one".
- Compose the sections in the order of the page map. Keep each component's own spacing; add page rhythm with consistent section padding.
- Mobile first: every section must work at 375px wide without horizontal scrolling.
- Respect prefers-reduced-motion everywhere; every Vitrine component already does.

## Before you ship
- Run `/template-tells` (https://tryvitrine.dev/workshop/skills/template-tells) on everything you wrote yourself: copy, sections, styles.
- Run `/responsive-audit` (https://tryvitrine.dev/workshop/skills/responsive-audit) at 375, 768 and 1280.
- Run `/accessibility-pass` (https://tryvitrine.dev/workshop/skills/accessibility-pass).
- Run `/performance-pass` (https://tryvitrine.dev/workshop/skills/performance-pass) on a production build.
- Run `/technical-seo-audit` (https://tryvitrine.dev/workshop/skills/technical-seo-audit) and `/seo-auditor` (https://tryvitrine.dev/workshop/skills/seo-auditor) before launch.

Direction

  • Near-black (#09090b) with raised panels (#111114) and hairline rings; colour is reserved for status: green ready, amber building, red failed.
  • Numbers change in place and say how they changed; nothing blinks, nothing pulses for attention.
  • Density where it helps: a table that focuses the row you're on and becomes records on a phone, an activity log where the gaps show how quiet the afternoon was.
  • The sidebar is the only navigation; on a phone it goes away and the page is one column.

Featured

301 components