
Marketplace Build Component
- 31 installs
- 3 repo stars
- Updated April 6, 2026
- vercel-labs/sitecore-skills
marketplace-build-component builds Blok UI for Sitecore Marketplace.
About
The marketplace-build-component skill guides Blok shadcn-based UI for Sitecore Marketplace apps with theme-aware components, extension-type size constraints, and SDK Skeleton and Alert loading patterns via useMarketplaceClient and useAppContext.
- Blok components via marketplace-sdk registry.
- Extension-type UI constraints table.
- SDK loading and error state pattern.
- Responsive iframe layout guidance.
- blok-components.md catalog reference.
Marketplace Build Component by the numbers
- 31 all-time installs (skills.sh)
- +1 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #1,330 of 1,896 Design & UI/UX skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 27, 2026 (Skillselion catalog sync)
marketplace-build-component capabilities & compatibility
- Capabilities
- blok design system principles
- Use cases
- ui design
What marketplace-build-component says it does
Builds UI components using the Blok design system
npx skills add https://github.com/vercel-labs/sitecore-skills --skill marketplace-build-componentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 31 |
|---|---|
| repo stars | ★ 3 |
| Security audit | 3 / 3 scanners passed |
| Last updated | April 6, 2026 |
| Repository | vercel-labs/sitecore-skills ↗ |
How do I build marketplace extension UI?
Build Sitecore Marketplace UI with Blok design system and SDK loading patterns.
Who is it for?
Developers building marketplace UIs.
Skip if: Skip for backend-only SDK work.
When should I use this skill?
User builds marketplace UI components.
What you get
Blok component page with SDK data loading.
Files
Build UI with Blok Design System
You are helping the user build UI components for a Sitecore Marketplace app using the Blok design system (Sitecore's shadcn-based component library).
Key Principles
1. Always use Blok components — they match the Sitecore host UI and support light/dark themes automatically 2. SDK data integration — use loading states (Skeleton) and error states (Alert) when fetching SDK data 3. Extension point awareness — different extension types have different UI constraints (see below) 4. Responsive — components render inside iframes of varying sizes
Installing Components
Blok components are installed via the shadcn CLI:
# Install the Blok theme (required first)
npx shadcn@latest add https://marketplace-sdk.sitecorecloud.io/r/blok-theme.json
# Install individual components
npx shadcn@latest add https://marketplace-sdk.sitecorecloud.io/r/<component-name>.jsonSee blok-components.md for the full component catalog with install commands.
UI Patterns by Extension Type
Compact Field (custom-field)
- Very limited space (~300px wide, variable height)
- Use: Input, Select, Badge, small inline components
- Avoid: Tables, large layouts, modals
Dashboard Widget
- Medium space (~400x300px default, resizable)
- Use: Cards, Charts, Stats, compact Tables
- Good for: Summary data, quick actions
Pages Context Panel
- Side panel (~350px wide, full height)
- Use: Vertical layouts, Lists, Accordion, Tabs
- Good for: Contextual info about current page, actions
Fullscreen
- Full viewport within the Sitecore shell
- Use: Any components, complex layouts, Tables, Forms
- Good for: Full CRUD interfaces, dashboards, settings
Standalone
- Independent page, not in Sitecore shell
- Use: Any components, full creative freedom
- Good for: Public-facing pages, OAuth callbacks
SDK Data Integration Pattern
"use client";
import { useEffect, useState } from "react";
import { useMarketplaceClient, useAppContext } from "@/components/providers/marketplace";
import { Skeleton } from "@/components/ui/skeleton";
import { Alert, AlertDescription } from "@/components/ui/alert";
export function MyComponent() {
const { client } = useMarketplaceClient();
const appContext = useAppContext();
const [error, setError] = useState<string | null>(null);
const loading = !appContext;
if (loading) return <Skeleton className="h-32 w-full" />;
if (error) return <Alert variant="destructive"><AlertDescription>{error}</AlertDescription></Alert>;
return <div>{/* Render data */}</div>;
}Reference Files
- Blok Components — Full component catalog with install commands
Blok Component Catalog
All components are installed via npx shadcn@latest add <url> where the URL is https://marketplace-sdk.sitecorecloud.io/r/<name>.json.
Theme (install first)
| Component | Install Command |
|---|---|
| Blok Theme | npx shadcn@latest add https://marketplace-sdk.sitecorecloud.io/r/blok-theme.json |
Layout & Structure
| Component | Install URL slug | Description |
|---|---|---|
| Card | card.json | Container with header, content, footer |
| Separator | separator.json | Horizontal or vertical divider |
| Tabs | tabs.json | Tabbed content panels |
| Accordion | accordion.json | Collapsible content sections |
| Sheet | sheet.json | Side panel overlay |
| Dialog | dialog.json | Modal dialog |
| Drawer | drawer.json | Bottom drawer panel |
| Collapsible | collapsible.json | Toggle content visibility |
| Resizable | resizable.json | Resizable panels |
| ScrollArea | scroll-area.json | Custom scrollbar area |
| AspectRatio | aspect-ratio.json | Maintain aspect ratios |
Forms & Input
| Component | Install URL slug | Description |
|---|---|---|
| Button | button.json | Click actions, variants: default/destructive/outline/secondary/ghost/link |
| Input | input.json | Text input field |
| Textarea | textarea.json | Multi-line text input |
| Select | select.json | Dropdown selection |
| Checkbox | checkbox.json | Boolean toggle |
| RadioGroup | radio-group.json | Single selection from options |
| Switch | switch.json | Toggle switch |
| Slider | slider.json | Range slider |
| Label | label.json | Form field label |
| Form | form.json | Form with validation (react-hook-form + zod) |
| InputOTP | input-otp.json | One-time password input |
| DatePicker | date-picker.json | Date selection |
| Calendar | calendar.json | Calendar display |
| Combobox | combobox.json | Searchable select |
| Command | command.json | Command palette / search |
| Toggle | toggle.json | Toggle button |
| ToggleGroup | toggle-group.json | Group of toggle buttons |
Data Display
| Component | Install URL slug | Description |
|---|---|---|
| Table | table.json | Data table |
| DataTable | data-table.json | Full-featured data table (sorting, filtering, pagination) |
| Badge | badge.json | Status/category labels |
| Avatar | avatar.json | User avatar with fallback |
| Tooltip | tooltip.json | Hover tooltips |
| HoverCard | hover-card.json | Rich hover content |
| Popover | popover.json | Click-triggered popup |
Feedback & Status
| Component | Install URL slug | Description |
|---|---|---|
| Alert | alert.json | Alert messages (info/warning/error) |
| AlertDialog | alert-dialog.json | Confirmation dialog |
| Toast | toast.json | Toast notifications (also see SDK app.toast) |
| Skeleton | skeleton.json | Loading placeholder |
| Progress | progress.json | Progress bar |
| Sonner | sonner.json | Alternative toast library |
Navigation
| Component | Install URL slug | Description |
|---|---|---|
| NavigationMenu | navigation-menu.json | Top navigation |
| Menubar | menubar.json | Menu bar with dropdowns |
| DropdownMenu | dropdown-menu.json | Dropdown action menu |
| ContextMenu | context-menu.json | Right-click context menu |
| Breadcrumb | breadcrumb.json | Breadcrumb navigation |
| Pagination | pagination.json | Page navigation |
| Sidebar | sidebar.json | Sidebar navigation |
Typography & Media
| Component | Install URL slug | Description |
|---|---|---|
| Carousel | carousel.json | Image/content carousel |
| Chart | chart.json | Data visualization (recharts) |
Installing Multiple Components
# Install several at once
npx shadcn@latest add https://marketplace-sdk.sitecorecloud.io/r/card.json https://marketplace-sdk.sitecorecloud.io/r/button.json https://marketplace-sdk.sitecorecloud.io/r/input.json https://marketplace-sdk.sitecorecloud.io/r/skeleton.json https://marketplace-sdk.sitecorecloud.io/r/alert.jsonUsage Pattern
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Skeleton } from "@/components/ui/skeleton";
export function MyWidget() {
return (
<Card>
<CardHeader>
<CardTitle>Widget Title</CardTitle>
</CardHeader>
<CardContent>
<p>Content here</p>
<Button>Action</Button>
</CardContent>
</Card>
);
}Related skills
FAQ
What does marketplace-build-component do?
marketplace-build-component builds Blok UI for Sitecore Marketplace.
When should I use marketplace-build-component?
User builds marketplace UI components.
Is this skill safe to install?
Review the Security Audits panel on this page before installing in production.