[Feature Request] First-party registry (vuetify add) — Emerald open-code distribution
Open
@johnleider is already working on this.
Since Jul 8, 2026.
enhancement
- Dominant language
- TypeScript
- Stars
- 8
- Forks
- 1
- Avg merge
- 1m
- Merged PRs (30d)
- 1
Description
Summary
Build a Vue-native first-party registry — npx vuetify add <component> copies ownable, MIT-licensed Emerald component source into the user's project (shadcn-style "open code"), built on @vuetify/v0 + Paper. Design-system-scoped, with Emerald as the default DS.
Full design spec (private): https://bin.vuetifyjs.com/bins/el91kQ
Local spec: .claude/specs/2026-07-08-first-party-registry-design.md
Locked decisions
- Unit: styled, ownable components (headline) + composable eject (wedge)
- DS axis: DS-scoped registry;
designSystemfield load-bearing from day one; Emerald = default (only populated DS until a second lands) - Delivery: static registry, no gating (Emerald is MIT/free; only its Figma file is commercial)
- Source of truth: co-located in
packages/emerald(vuetifyjs/0); manifest emitted at build - Eject: own-the-source; copied source visibly imports v0
createX; no headless twins. Composable recipes = v1.1
v1 scope
vuetify init— installs deps, wires the emerald token layer (UnoCSSemeraldTheme+--emerald-*vars), writesvuetify.configvuetify add <item…>— resolve item + transitiveregistryDependencies+ npm deps, write source, print notesvuetify add(no args) /vuetify list— interactive select- Static manifest on CDN; cross-family dependency resolution
- Reconcile existing
add(integrations-only today) → registry-first,eslintstays a reserved keyword
Out of v1: multi-DS population (schema ready), composable recipes, blocks/templates, DS-payload items.
Open items / risks
- Rides vuetifyjs/0 PR #167 (
feat/emerald-paper-design-system) merging — machinery can be built in parallel against a fixture manifest - Hosting URL / CI —
registry.vuetifyjs.comvs0.vuetifyjs.com/r/; who owns the publish step - Post-eject token boundary — does
@paper/emeraldexportemeraldTheme+--emerald-*for owners who copied source but didn't install the DS package? - Confirm no consumer depends on
add's current integration-only behavior beyondeslint
Next step
Turn the spec into an implementation plan.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.