A comprehensive shadcn/ui registry for a Built.js theme featuring reusable React templates and blocks for building modern web applications.
- 160+ Templates: Across 11 modules with 4 theme variations each
- 4 Theme System: Standard, Minimal, Bold, and Neobrutalism themes
- Shadcn/ui Compatible: Fully compatible with shadcn/ui component system
- TypeScript Ready: Built with TypeScript for better developer experience
- Responsive Design: All templates are mobile-first and fully responsive
- Modern Stack: Next.js 14, Tailwind CSS, and Radix UI primitives
- Simplified Architecture: No build step required, direct file editing
Clean, professional design for broad appeal - perfect for corporate, SaaS, and professional services.
Ultra-clean, sophisticated design with subtle typography and spacing - ideal for portfolios and minimalist brands.
High-impact design with vibrant colors and dynamic layouts - great for creative agencies and startups.
Raw, unpolished aesthetics with thick borders and stark shadows - perfect for creative portfolios and experimental brands.
- About - Company information, team, values, story sections
- Main - Landing page elements, hero sections, CTAs
- Features - Product features, capabilities, benefits
- Services - Service offerings, pricing, packages
- Team - Team members, leadership, profiles
- FAQ - Questions, answers, help content
- Logos - Brand showcases, client logos, partnerships
- Newsletter - Email signup, subscription forms
- Blog - Blog posts, articles, content
- Gallery - Portfolio, images, media
- Pricing - Pricing plans, tiers, packages
IMPORTANT: The registry has been restructured to eliminate redundant block.json files and use a simplified architecture where public files serve as the single source of truth.
public/
├── registry.json # Minimal registry (ShadCN convention)
└── registry/
├── blocks-index.json # Complete block definitions with fields, data, collections
├── collections-data.json # All collection data (blogItem, teamMemberItem, etc.)
└── content-types.json # Content type definitions (Built.js format)
blocks/
└── [module]/[section]/[template]/
└── component.tsx # Only component files remain!
- No build step required - Edit public files directly
- Single source of truth - All metadata in public directory
- AI accessible - All definition files are publicly available
- Simplified workflow - Edit component files + update public registry files
- Immediate changes - No need to rebuild or restart
When creating templates that need custom components (not ShadCN UI components), follow Built.js conventions:
- Custom components must be placed in
components/shared/ - ShadCN UI components remain in
components/ui/
// ✅ Correct - Import custom components from shared
import { createPortableTextComponents } from '@/components/shared'
// ✅ Correct - Import ShadCN components from ui
import { Button } from '@/components/ui/button'
// ❌ Incorrect - Don't import custom components from lib
import { createPortableTextComponents } from '@/lib/portable-text-components'components/
├── ui/ # ShadCN UI components
└── shared/ # Custom shared components
├── index.ts # Export all shared components
├── portable-text-components.tsx
└── [other-custom-components].tsx
For templates that display rich text content (like blog articles), use PortableText with theme-aware styling:
import { PortableText } from '@portabletext/react'
import { createPortableTextComponents } from '@/components/shared'
// In your component
<PortableText
value={entry.content}
components={createPortableTextComponents('bold')} // Theme: 'standard', 'minimal', 'bold', 'neobrutalism'
/>The createPortableTextComponents function provides theme-specific styling for:
- Headings: h1, h2, h3, h4 with theme-appropriate typography
- Text: Paragraphs with proper spacing and font weights
- Lists: Bullet and numbered lists with consistent styling
- Formatting: Bold, italic, and emphasis
- Links: Styled links with hover effects
- Code: Inline code and code blocks
- Blockquotes: Styled quote blocks
Each theme provides distinct styling:
- Standard: Clean, professional typography with gray color scheme
- Minimal: Light, airy design with subtle fonts
- Bold: Strong, impactful typography with heavier weights and light colors for dark backgrounds
- Neobrutalism: Raw, high-contrast design with borders and shadows
- Clone the repository:
git clone https://github.com/richjava/builtjs-shadcn-registry.git
cd builtjs-shadcn-registry- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:3000 to view the registry
- Edit
blocks/{module}/{section}/{template}/component.tsx - Test in preview mode
- No registry updates needed
- Edit
public/registry/blocks-index.jsonfor block definitions - Edit
public/registry/collections-data.jsonfor collection data - Edit
public/registry/content-types.jsonfor content types - Test changes immediately (no build step)
- Create component file in appropriate directory
- Update
public/registry/blocks-index.jsonwith block definition - Add collection data to
public/registry/collections-data.json(if needed) - Add content type to
public/registry/content-types.json(if needed) - Update
public/registry.jsonwith block metadata - Test block rendering
├── public/ # Public files (served statically)
│ ├── registry.json # Minimal registry (ShadCN convention)
│ └── registry/ # Registry data files
│ ├── blocks-index.json # Complete block definitions
│ ├── collections-data.json # Collection data
│ └── content-types.json # Content type definitions
├── blocks/ # Template blocks organized by module/section/template
│ ├── about/
│ ├── main/
│ ├── features/
│ ├── services/
│ ├── team/
│ ├── faq/
│ ├── logos/
│ ├── newsletter/
│ ├── blog/
│ ├── gallery/
│ └── pricing/
├── components/ # UI components
│ ├── ui/ # ShadCN UI components
│ └── shared/ # Custom shared components
├── lib/ # Utility functions and helpers
├── pages/ # Next.js pages
├── scripts/ # Build and utility scripts
└── docs/ # Documentation
public/registry.json- Minimal registry following ShadCN conventionspublic/registry/blocks-index.json- Complete block definitions with fields, data, collectionspublic/registry/collections-data.json- All collection data (blogItem, teamMemberItem, etc.)public/registry/content-types.json- Content type definitions in Built.js formatlib/collection-resolver.ts- Utility for resolving collections and block data
- Create a new directory in the appropriate module/section/template structure:
mkdir -p blocks/{module}/{section}/{template}- Create your component file:
touch blocks/{module}/{section}/{template}/component.tsx-
Implement your component following the established patterns
-
Update the registry files:
- Add block definition to
public/registry/blocks-index.json - Add collection data to
public/registry/collections-data.json(if needed) - Add content type to
public/registry/content-types.json(if needed) - Update
public/registry.jsonwith block metadata
- Add block definition to
-
Test your template in the preview system
Each template should be defined in public/registry/blocks-index.json:
{
"block-name": {
"fields": {
"headline": { "type": "string" },
"subheadline": { "type": "text" },
"ctaText": { "type": "string" }
},
"data": {
"headline": "Example headline",
"subheadline": "Example subheadline",
"ctaText": "Get Started"
},
"collections": {
"featureItem": { "limit": 3 }
},
"dependencies": ["lucide-react"],
"shadcnComponents": ["Button", "Card"],
"lucideIcons": ["ArrowRight", "Star"],
"masterDetail": {
"isMaster": false,
"isDetail": false
}
}
}We welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the amazing component system
- Built.js for the CMS platform
- Tailwind CSS for the utility-first CSS framework
- Radix UI for the accessible component primitives
The registry is designed to be deployed on Vercel:
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy with the provided configuration
The registry will be available at your Vercel URL and can be used with the shadcn/ui CLI.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the amazing component system
- Radix UI for the primitive components
- Tailwind CSS for the utility-first CSS framework