(—) Work — Our product
VVS PanelIn use

Back offices built around the business, not a template.

VVS Panel is the foundation we build client back offices on: a React design system covering the layout, tables, charts, forms, light and dark themes, co-branding, branded email and a guided tour. Each panel is then built around the client's own data and roles. VVS is a diamond clarity grade: very, very slightly included.

WebTypeScriptReact 19Tailwind CSS 4Radix UITanStack Tablethree.jsNext.js

The problem

Admin templates look finished on day one.

Then they check permissions only in the browser, load whole tables at once, and keep no record of who changed what.

VVS starts from the other end: the client's own records, roles and rules, with one design system so every screen looks and behaves like part of the same product.

What we built

01

A layout that works on a phone

A responsive shell whose side menu becomes a drawer on small screens.

02

Light and dark

Both themes from one set of design tokens, with no flash of the wrong theme as a page loads.

03

Search everything

A ⌘K search palette, with results limited to what each person's role allows.

04

Tables

Sorting, selection, paging, loading placeholders and empty states that say something useful.

05

Charts with a table behind them

Line, area, bar, heatmap and small-multiple charts drawn in SVG, most of which switch to a plain table.

06

Co-branded

The client's logo leads, with a quiet VVS mark; branded email in HTML and plain text; and a guided tour filtered by role.

Under the surface

The engineering

  1. 01

    In client work, every change checks the person's role, validates the input and writes an audit record with the values before and after.

  2. 02

    Exports are role-checked, audited and protected against spreadsheet formula injection.

  3. 03

    Email is only recorded, never sent, until sending is switched on and the recipient is on an allow-list, so testing can never email a real person.

  4. 04

    Text and form fields meet accessible contrast, tables carry sort states and captions for screen readers, and motion is reduced when a person asks for less.

  5. 05

    Its 3D crystal loads three.js only when needed, uses one WebGL canvas per page, pauses when off-screen, and falls back to a flat drawing.

  6. 06

    Our own server control panel runs on it too, with sign-in lockout and a typed confirmation before anything destructive.

Where it runs

Behind a client's marketplace, where it carries the whole back office, and behind our own server control panel. It is not a package you download: we build each client's panel on it.

Start a project

Tell us what you are building.

A few lines about the problem is enough to start. We reply within one business day.