Description
Enable users to eject and customize plugin page components using the shadcn CLI by publishing a component registry.
Problem
Currently, plugin pages (e.g., ChatPage, BlogPostPage, ConversationsPage) are bundled and consumed as-is. Users who want to modify page layouts, styling, or behavior must either:
- Fork the entire package
- Use limited override props
- Theme via css vars
- Work around the component structure
Proposed Solution
Create a registry.json that exposes plugin pages as installable items via:
npx shadcn@latest add <registry-url>/chat-page
npx shadcn@latest add <registry-url>/blog-post-page
This would copy the full page component source into the user's project, allowing complete customization while maintaining the plugin's data fetching patterns (loaders, query keys, hooks).
Registry Items to Include
- Pages:
chat-page, conversations-page, blog-post-page, blog-list-page, etc.
- Page-level overrides:
chat-layout, message-list, blog-card, etc.
- Shared primitives: Reusable UI pieces that pages compose
Acceptance Criteria
References