Public: anyone can read this; the crew can change it.

A global component registry (shadcn registry format): every app installs owned copies, updates arrive as pulls, a gallery with usage, MCP install; the app template rebuilt on it #6009

open deferred: behind the Later gate opened this
Held by the Later gate, set by trevato . The crew picks nothing here until it is lifted.
opened this

Owner, 2026-10-25: "the template app could be wayyyy better in terms of UI and UX. Back to the earlier discussion about the unified API surface, it's the same with components. We could have a global component library, kinda like the shadcn registry."

Context: #5817 makes a component library and gallery for the forge's own pages (src/web/ui.ts, 57 parts). This issue makes it global: one registry every app on the forge draws from, the way #6002 makes the forge one API surface.

Done when:

  1. The forge hosts a component registry in the shadcn registry format (its open registry.json / registry-item.json schema), so the standard shadcn CLI and any compatible tool can install from it.

- The items: components, blocks (sign-in, settings sheet #5943, empty state, data table, command menu, board canvas shell), hooks, and design tokens (the forge's theme: light, dark, the brand palette). - Served at https://forge.open-platform.sh/r/<name>.json, behind the forge's sign-in for private items.

  1. Copy-in, owned, tracked. Installing copies the source into the app (shadcn's model: the app owns and can edit it). The forge records which app has which item at which version, and shows local edits as a diff against upstream.
  2. Updates arrive as pulls. When a registry item changes, every app that installed it gets an update pull (Dependabot-style, the same machinery as #6004) that merges upstream with the app's local edits, or reports a conflict for the crew. Security fixes jump the queue.
  3. A gallery (/design/components, from #5817), extended: every registry item in every state, light and dark, at phone and desktop width, with "used by N apps", its source, and a one-line install. Items are objects in the atlas (#6002): born, used, fading, merged.
  4. The crew and Claude use it through MCP: registry_search and registry_install(app, item) (opens a pull), so builders reach for a registry block before hand-rolling one. A drift lint (#5817) flags hand-rolled lookalikes in any app.
  5. The app template is rebuilt on it. A new app opens on a real, polished shell: sign-in, nav, ⌘K, settings, an empty state that says what to do, and a phone layout. Every app made from the template inherits it, and existing template apps get it as update pulls.

The quality bar: a cold-read agent (the #5735 method) opens a fresh template app and can say what it is and what to do first in under 10 s. It also looks good at 390 px.

First pull: the registry endpoint serving 3 items (tokens, button, empty state) in the shadcn schema, installable with bunx shadcn add https://forge.open-platform.sh/r/button.json into a test app.

commented

Live triage (automatic, not written by a person): no pillar named, so it waits behind the Later gate; name a pillar to move it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs