Back to Plate

Sync Shadcn Decisions

docs/sync/shadcn/decisions.md

53.0.93.9 KB
Original Source

Sync Shadcn Decisions

These are the default decisions for future upstream shadcn syncs. Change them only with an explicit user decision and record the reason in the sync plan.

AreaDefaultNotes
Fumadocs engineadopt upstreamKeep source.config.ts, createMDX, Fumadocs page data, raw markdown, and page tree patterns aligned with upstream.
Plate docs contentkeep Platecontent/docs/** is Plate product content. Do not replace it with upstream shadcn content.
Fumadocs metadatakeep Plate on upstream modelcontent/docs/meta.json is the committed page-tree authority with Plate overlays.
API MDXkeep PlatePreserve API components, generated API docs, and Plate MDX vocabulary.
Registry contractadopt upstream contractUse shadcn v4 schema, namespace dependencies, resolver semantics, and registry:base init shape.
Registry contentkeep Plateapps/www/src/registry/** is Plate-owned content.
Registry buildsmart mergeUse upstream v4 patterns, but keep Plate docs registry generation and delivery needs.
Generated registry outputregenerate onlyDo not manually edit generated public/r, public/rd, or registry indexes.
Lazy code sourcekeep Plate forkKeep /api/registry-source/[name] for code-view bandwidth. Do not revive public-shaped /api/registry/[name].
Sidebarkeep Plate UX, upstream primitivesKeep accordion/filter behavior for the large Plate docs tree, but build on Fumadocs data and shadcn sidebar primitives.
Searchsmart mergeUse Fumadocs/upstream search architecture with Plate docs/API/plugins/examples/editor/MCP groups.
Header/navsmart mergeUse upstream Fumadocs-aware structure with Plate logo, product links, locale links, MCP, GitHub, and Discord.
Homepagekeep PlateKeep a Plate-centered homepage without old themes/customizer/project state.
Editor demoskeep PlatePreserve editor demos, block previews, and /view/[name] rendering.
/blocks galleryfork selectivelyKeep Plate demo routes where useful; do not import upstream block gallery product pages by default.
/createexclude upstreamDo not support ui.shadcn.com/create as a Plate product surface unless the user explicitly asks for a Plate create flow.
/chartsexclude upstreamDo not add public charts pages by default.
/colorsexclude upstreamDo not add public colors pages by default.
v0exclude allDo not import v0 routes, buttons, copy actions, project hooks, or init variants.
Init routekeep non-v0 Plate bootstrapKeep /init and /init.md only for shadcn-compatible @plate bootstrap.
Theme/customizerdelete Plate residueKeep upstream token/style system; discard Plate theme library, customizer drawer, project state, lift mode, and random theme UI.
CN docskeep PlatePreserve CN routes, labels, language dropdown, and Fumadocs i18n behavior.
MCPkeep PlatePreserve MCP dialog/docs/header entry with the @plate namespace.
Plate Plus/Prokeep PlatePreserve Plus/Pro hooks and links where they support Plate docs.
GAkeep Plate minimalKeep GA. Do not reintroduce per-click analytics for discarded surfaces.
LLM docssmart mergeUse upstream .md route and copy-page model; keep Plate-specific context only where it adds real value.
RSS/OG/assetssmart mergeUse upstream structure when useful, with Plate branding and release content.
Dev/debug routesexclude publicDo not ship public /dev or e2e/debug routes in the docs app.
Slate-to-HTML pagekeep PlateKeep the special page because the RSC example cannot be previewed through the generic block path.
Workspace aliases/typecheckkeep PlatePreserve app source aliases and package integration typecheck model.
Package integration testskeep PlateDo not lose app-as-integration-harness coverage during shadcn syncs.