Shelf is open source and in early preview
Shelf
Get started

The design system every product owns.

Start with shared components, then make them yours. Shelf puts the source in every product and tracks every copy, so teams and agents move fast without leaving the system behind.

  • StyleX
  • Base UI
  • React
  • Next
  • TanStack Start

Why Shelf

Consistent products without a bottleneck

A shared package keeps products consistent, but even a spacing or color change becomes an override that breaks on upgrade, or a request that waits on the system team. Copied files make changes easy, but nobody knows what changed, and fixes stop reaching anyone. Shelf keeps every product on one registry and makes each difference deliberate, visible, and still updatable.

Registry

One registry for every product

The system team publishes components, blocks, and foundations as plain files on any static host, public or behind sign-in. Products add from it.

one registry, every product
One registry holds button, dialog, and foundations with their revisions. Three products add from it with shelf add; each records what it installed, and one has changed its button locally.

Browse every item with its source, revisions, previews, and the products that use it.

Workflow

Add it. Change it. Check it.

Four steps, each one command. Everything else is normal code.

  • shelf add button2 files

    Add

    shelf add copies the source, the items it depends on, and installs its packages.

  • button.tsxYours
    Save changes

    Change

    Adjust spacing, color, or markup where it is defined. It is a normal file in your repository.

  • FileStatusbutton.tsxModifieddialog.tsxUnchanged

    Review

    shelf status and shelf diff show what you changed and what is new upstream.

    • Config
    • Provenance
    • Dependencies
    • Imports

    Check

    shelf check confirms the install is intact. A failure names the file and the fix.

Agents

Give agents the source the file that actually renders

An agent edits the file that renders instead of wrapping a package it can't change. shelf search finds what exists, and shelf check says what to fix.

terminal
An agent adds a confirm step: it searches Shelf, adds Alert Dialog, edits it, and shelf check passes with one file modified locally.

A real session: find, add, change, check.

Provenance

Diverge without drifting

Products change their copy and the registry keeps moving. Shelf knows the version both started from, so an update is a three-way merge, not a rewrite.

three versions of every file
BASE is what you installed. LOCAL is what you changed. UPSTREAM is what the registry has now.

Untouched files update. Edited files merge. Overlapping edits get standard conflict markers.

Who it's for

Shared foundations owned implementations

The system team owns tokens, accessibility, and defaults. Product teams own what they ship. Both work from the same registry.

Themes

Your brand from one set of tokens

Components read semantic tokens for color, radius, and type. Pick a preset, then edit one file to match your brand, in light and dark.

FAQ

Questions teams ask first

Drift, updates, hosting, and what happens if you leave.

Consistent by default. Yours when needed.

Get started