- Accordion
- Alert
- Avatar
- Badge
- Breadcrumb
- Button
- Button Group
- Calendarnew
- Card
- Carousel
- Checkbox
- Chip
- Collapse
- Dialog
- Drawer
- Footer
- Gallery
- Icon Button
- Image
- Input
- List
- Mapnew
- Menu
- Navbar
- Pagination
- Popover
- Progress
- Radio
- Rating
- Select
- Sidebar
- Skeletonnew
- Slider
- Software Purchase Card
- Sonner / Toastnew
- Speed Dial
- Spinner
- Stepper
- Switch
- Table
- Tabs
- Textarea
- Timeline
- Tooltip
- Typography
- Video
What is the Registry?
The Creative Tim UI registry is a centralized catalog system that enables CLI-based component installation based on shadcn/ui. Unlike traditional npm packages where components are locked in external dependencies, our registry delivers components as source code directly into your project.
How the Registry Works
When you run the installation command, the CLI:
- Fetches Component Metadata: Retrieves the component definition from our registry endpoint
- Downloads Dependencies: Identifies and installs required npm packages
- Copies Source Files: Places component files directly into your codebase
- Manages Imports: Automatically configures path aliases and imports
Registry Structure
Each component in the registry includes:
- Component Source Code: The actual React component files
- Type Definitions: Full TypeScript support with strict types
- Dependencies: List of required npm packages (Radix UI, etc.)
- Files Metadata: Information about where files should be placed
- Registry Dependencies: Other registry components it depends on
Installation Endpoints
Components are available through JSON endpoints:
# Base UI Components
/r/button.json
/r/card.json
/r/avatar.json
# Custom Blocks
/r/testimonials-09.jsonThese endpoints return structured JSON that the CLI uses to install components.
Registry vs NPM
| Feature | Registry (Source Code) | NPM Package |
|---|---|---|
| Customization | Full control, edit directly | Limited to props/config |
| Updates | Manual, opt-in | Automatic via package manager |
| Bundle Size | Only what you use | Entire package included |
| Version Control | Part of your codebase | External dependency |
| Flexibility | Modify, extend freely | Constrained by package API |
Registry Components
The Creative Tim UI registry currently includes:
- 47 Base UI Components: All shadcn/ui components (button, card, avatar, etc.)
- 100+ Custom Blocks: Pre-built sections like testimonials, forms, and more
- Full TypeScript Support: Type-safe component definitions
- Dark Mode Ready: Built-in theme support with CSS variables
Premium Components
The registry supports premium components with API key authentication for PRO features:
- Access control via Bearer tokens or API keys
- Gated installation for premium components
- Environment variable support for CI/CD workflows
Authentication Setup
Premium components require authentication. There are three ways to authenticate:
1. Environment Variable
# Set the API key as an environment variable
export CREATIVE_TIM_UI_API_KEY=pk_live_your_key
# Install premium components
npx @creative-tim/ui@latest add testimonials-062. Config File with Environment Variable
Add to your components.json:
{
"registries": {
"@creative-tim": {
"url": "https://www.creative-tim.com/ui/r/{name}.json",
"headers": {
"Authorization": "Bearer ${CREATIVE_TIM_UI_API_KEY}"
}
}
}
}The CLI will automatically expand ${CREATIVE_TIM_UI_API_KEY} from your environment variables.
3. Command Flag
pnpm dlx @creative-tim/ui@latest add testimonials-06 --api-key pk_live_your_key
How It Works
When you request a premium component:
- CLI reads authentication config from
components.jsonor command flags - Expands environment variables in header values (e.g.,
${CREATIVE_TIM_UI_API_KEY}) - Sends authenticated request to the registry endpoint
- Registry validates your API key and subscription status
- Returns component if authentication succeeds
- Returns 401/403 if authentication fails
Error Responses
| Status Code | Meaning | Solution |
|---|---|---|
| 401 Unauthorized | API key missing or invalid | Check your API key and environment variable |
| 403 Forbidden | API key doesn't have access | Verify your subscription at dashboard |
| 404 Not Found | Component doesn't exist | Check component name spelling |
Getting Your API Key
- Get a Creative Tim UI License
- Visit your Creative Tim Dashboard
- Navigate to the API Keys section
- Copy your API key (starts with
pk_live_)
Best Practices
- Install Only What You Need: Each component is standalone, no bloat
- Customize After Install: Treat installed components as your own code
- Version Control: Commit installed components to your repository
- Update Selectively: Re-run install commands to update specific components
On This Page
What is the Registry?How the Registry WorksRegistry StructureInstallation EndpointsRegistry vs NPMRegistry ComponentsPremium ComponentsAuthentication Setup1. Environment Variable2. Config File with Environment Variable3. Command FlagHow It WorksError ResponsesGetting Your API KeyBest Practices