From Open Dashboard
Scaffolds a full dashboard foundation (UI primitives, form system, charts, data layer, auth, theme, routing) into a new project as a zero-config runnable app. Run first when building a dashboard.
How this skill is triggered — by the user, by Claude, or both
Slash command
/open-dashboard:scaffold-dashboardThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The whole foundation is **bundled** at `base/` — a clean, runnable app shell with
The whole foundation is bundled at base/ — a clean, runnable app shell with
no demo content. Materialize it into a new project, then add screens from the
add-component catalogue's shapes (and the add-backend operation skill). You
don't read the foundation code — you scaffold it.
bash .claude/skills/scaffold-dashboard/scaffold.sh <target-dir>
Copies base/ → target and runs bun install. Then:
cd <target-dir>
bun run dev # zero-config: in-memory auth + data, no Postgres/Docker
Open it, click Dev quick login ([email protected] / password) → an empty,
branded dashboard.
TanStack Start + Router + Query + Table; shadcn-on-@base-ui/react primitives;
Tailwind v4 theme; the form system (TanStack Form + zod); chart components; the
Repository data layer (in-memory by default, Drizzle/Postgres when DATABASE_URL
is set); better-auth behind the AuthProvider seam; toast + useConfirm; and the
auth-guarded routing shell. Rebrand via src/config/app.ts (or the rebrand skill).
You are building a real back-office for a specific domain — not showcasing the catalogue. The fastest way to ship something that reads as a patchwork demo is to copy a pile of gallery shapes into the nav. Don't. Instead:
src/routes/_app/index.tsx (the "clean shell" welcome) with a real overview via
add-chart-page — KPIs + charts derived from your actual resources. Shipping the
scaffold welcome as the product home is the #1 tell of a demo.src/lib/sidebar-items.ts, you don't prune sample ones.add-backend); rich record → + add-detail-page;
an inbox you triage → add-master-detail; a staged pipeline → add-kanban;
people/visual items → add-card-list; date-bound items → add-calendar;
metrics → add-chart-page.SquaresFourIcon) down the list.Alpha/Beta/Gamma read as a demo; a dozen realistic records read as a product.The shapes below are references inside the single add-component catalogue (not
separate invocable skills); each copies a bundled template into the new project.
Data + CRUD comes from the add-backend operation skill.
bun run create-resource <name> (or add-backend),
then the catalogue's add-detail-page, add-master-detail, add-card-list,
add-form, add-chart-page.add-component): add-list-view, add-kanban,
add-tree-view, add-calendar, add-timeline, add-virtual-table,
add-inline-edit, add-filter-panel, add-wizard-form, add-field-combobox,
add-record-tabs, add-settings-page, add-empty-state, add-page-layout,
add-data-display, add-feedback-states.After copying a template, add a sidebar entry in src/lib/sidebar-items.ts (above
the // create-resource:anchor) so it shows in the nav.
cd <target-dir>
bun run typecheck && bun run check && bun run test && bun run build
All green on the empty shell (and after each screen you add). bun run dev boots
zero-config.
npx claudepluginhub ahpxex/open-dashboard --plugin open-dashboardBlocks Edit/Write/Bash actions until Claude investigates importers, data schemas, and user instructions. Improves output quality by forcing concrete facts before edits.