Skip to content
Development
Skill

/building-admin-dashboard-customizations

Load automatically when planning, researching, or implementing Medusa Admin dashboard UI (widgets, custom pages, forms, tables, data loading, navigation). REQUIRED for all admin UI work in ALL modes (planning, implementation, exploration). Contains design patterns, component

From plugin
medusa-agent-skills
23418 skills1 MCP

Claude Code

$ npx -y skills add medusajs/medusa-agent-skills --skill building-admin-dashboard-customizations --agent claude-code

SKILL.md

building-admin-dashboard-customizations.SKILL.md
name: building-admin-dashboard-customizations
description: Load automatically when planning, researching, or implementing Medusa Admin dashboard UI (widgets, custom pages, forms, tables, data loading, navigation). REQUIRED for all admin UI work in ALL modes (planning, implementation, exploration). Contains design patterns, component usage, and data loading patterns that MCP servers don't provide.

Medusa Admin Dashboard Customizations

Build custom UI extensions for the Medusa Admin dashboard using the Admin SDK and Medusa UI components.

**Note:** "UI Routes" are custom admin pages, different from backend API routes (which use building-with-medusa skill).

When to Apply

**Load this skill for ANY admin UI development task, including:**

  • Creating widgets for product/order/customer pages
  • Building custom admin pages
  • Implementing forms and modals
  • Displaying data with tables or lists
  • Adding navigation between pages

**Also load these skills when:**

  • **building-with-medusa:** Building backend API routes that the admin UI calls
  • **building-storefronts:** If working on storefront instead of admin dashboard

CRITICAL: Load Reference Files When Needed

**The quick reference below is NOT sufficient for implementation.** You MUST load relevant reference files before writing code for that component.

**Load these references based on what you're implementing:**

  • **Creating widgets?** → MUST load `references/data-loading.md` first
  • **Building forms/modals?** → MUST load `references/forms.md` first
  • **Displaying data in tables/lists?** → MUST load `references/display-patterns.md` first
  • **Selecting from large datasets?** → MUST load `references/table-selection.md` first
  • **Adding navigation?** → MUST load `references/navigation.md` first
  • **Styling components?** → MUST load `references/typography.md` first

**Minimum requirement:** Load at least 1-2 reference files relevant to your specific task before implementing.

When to Use This Skill vs MedusaDocs MCP Server

**⚠️ CRITICAL: This skill should be consulted FIRST for planning and implementation.**

**Use this skill for (PRIMARY SOURCE):**

  • **Planning** - Understanding how to structure admin UI features
  • **Component patterns** - Widgets, pages, forms, tables, modals
  • **Design system** - Typography, colors, spacing, semantic classes
  • **Data loading** - Critical separate query pattern, cache invalidation
  • **Best practices** - Correct vs incorrect patterns (e.g., display queries on mount)
  • **Critical rules** - What NOT to do (common mistakes like conditional display queries)

**Use MedusaDocs MCP server for (SECONDARY SOURCE):**

  • Specific component prop signatures after you know which component to use
  • Available widget zones list
  • JS SDK method details
  • Configuration options reference

**Why skills come first:**

  • Skills contain critical patterns like separate display/modal queries that MCP doesn't emphasize
  • Skills show correct vs incorrect patterns; MCP shows what's possible
  • Planning requires understanding patterns, not just API reference

Critical Setup Rules

SDK Client Configuration

**CRITICAL:** Always use exact configuration - different values cause errors:

// src/admin/lib/client.ts
import Medusa from "@medusajs/js-sdk"

export const sdk = new Medusa({
  baseUrl: import.meta.env.VITE_BACKEND_URL || "/",
  debug: import.meta.env.DEV,
  auth: {
    type: "session",
  },
})

pnpm Users ONLY

**CRITICAL:** Install peer dependencies BEFORE writing any code:

# Find exact version from dashboard
pnpm list @tanstack/react-query --depth=10 | grep @medusajs/dashboard
# Install that exact version
pnpm add @tanstack/react-query@[exact-version]

# If using navigation (Link component)
pnpm list react-router-dom --depth=10 | grep @medusajs/dashboard
pnpm add react-router-dom@[exact-version]

**npm/yarn users:** DO NOT install these packages - already available.

Rule Categories by Priority

| Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Data Loading | CRITICAL | `data-` | | 2 | Design System | CRITICAL | `design-` | | 3 | Data Display | HIGH (includes CRITICAL price rule) | `display-` | | 4 | Typography | HIGH | `typo-` | | 5 | Forms & Modals | MEDIUM | `form-` | | 6 | Selection Patterns | MEDIUM | `select-` |

Quick Reference

1. Data Loading (CRITICAL)

  • `data-sdk-always` - **ALWAYS use Medusa JS SDK for ALL API requests** - NEVER use regular fetch() (missing auth headers causes errors)
  • `data-sdk-method-choice` - Use existing SDK methods for built-in endpoints (`sdk.admin.product.list()`), use `sdk.client.fetch()` for custom routes
  • `data-display-on-mount` - Display queries MUST load on mount (no enabled condition based on UI state)
  • `data-separate-queries` - Separate display queries from modal/form queries
  • `data-invalidate-display` - Invalidate display queries after mutations, not just modal queries
  • `data-loading-states` - Always show loading states (Spinner), not empty states
  • `data-pnpm-install-first` - pnpm users MUST install @tanstack/react-query BEFORE coding

2. Design System (CRITICAL)

  • `design-semantic-colors` - Always use semantic color classes (bg-ui-bg-base, text-ui-fg-subtle), never hardcoded
  • `design-spacing` - Use px-6 py-4 for section padding, gap-2 for lists, gap-3 for items
  • `design-button-size` - Always use size="small" for buttons in widgets and tables
  • `design-medusa-components` - Always use Medusa UI components (Container, Button, Text), not raw HTML

3. Data Display (HIGH)

  • `display-price-format` - **CRITICAL**: Prices from Medusa are stored as-is ($49.99 = 49.99, NOT in cents). Display them directly - NEVER divide by 100

4. Typography (HIGH)

  • `typo-text-component` - Always use Text component from @medusajs/ui, never plain span/p tags
  • `typo-labels` - Use `<Text size="small" leading="compact" weight="plus">` for labels/headings
  • `typo-descriptions` - Use `<Text size
Read more
@medusajs
Ships withmedusa-agent-skills

A collection of skills composed as Claude Code plugins for building Medusa applications with best practices and architectural patterns. These skills can be used with any agent, as explained in the Usage with Other Agents section.

23418 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
234
Star history of medusajs/medusa-agent-skills on GitHub, a chart by star-history.com

Other skills on medusa-agent-skills.

mcloud-auth

mcloud-auth

Execute mcloud authentication and context commands: login, logout, whoami, use, version, and signup. Use when setting up the CLI,…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about building-admin-dashboard-customizations.

Which coding agents can use building-admin-dashboard-customizations?
building-admin-dashboard-customizations installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.