scaffold-dashboard
Builds the foundation for a dashboard app with all the basic parts you need to start, so you can add screens and features quickly.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
SKILL.mdShow the author's original SKILL.md
--- name: scaffold-dashboard description: Stand up the dashboard foundation (the platform layer — UI primitives, form system, charts, Repository + adapters, auth seam, theme, routing shell) into a new project as a zero-config runnable app. Run this FIRST when building a dashboard, then compose screens from the add-component catalogue's shapes (add-detail-page, add-kanban, …) and the add-backend operation skill. --- # Scaffold the dashboard foundation 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. ## Scaffold ```bash bash .claude/skills/scaffold-dashboard/scaffold.sh <target-dir> ``` Copies `base/` → target and runs `bun install`. Then: ```bash cd <target-dir> bun run dev # zero-config: in-memory auth + data, no Postgres/Docker ``` Open it, click **Dev quick login** (`dev@example.com` / `password`) → an empty, branded dashboard. ## What you get 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). ## Compose a coherent product (not a demo dump) 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: - **The home is an overview, never the placeholder.** Replace `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. - **Nav = real product sections only:** Overview, your resources, Settings. The scaffold base ships clean (no demo resources, no Skills Gallery) — you add product sections to `src/lib/sidebar-items.ts`, you don't prune sample ones. - **Pick the archetype that fits each resource's shape**, don't add one of each: flat list → CRUD table (`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`. - **Every nav item gets a distinct, meaningful Phosphor icon** — never repeat one icon (e.g. `SquaresFourIcon`) down the list. - **Use product language.** Labels and page copy name the domain, not the mechanism: "Feed", not "Feed (REST)"; "Manage your invoices", not "Generated resource — customise the schema". - **Seed believable data** — real names, dates, statuses, amounts. Three rows of `Alpha/Beta/Gamma` read as a demo; a dozen realistic records read as a product. ## Add screens (compose from the add-component catalogue) 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. - **Resources** (data + CRUD): `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`. - **Shapes** (all in `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. ## Verify ```bash 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.
Ships with 154 supporting files:
- base/.env.example
- base/.gitignore
- base/biome.json
- base/bun.lock
- base/CLAUDE.md
- base/components.json
- base/docker-compose.yml
- base/drizzle.config.ts
- base/LICENSE
- base/package.json
- base/public/mocking/simple.json
- base/README.md
- base/scripts/create-resource.ts
- base/scripts/seed.ts
- base/src/components/charts/AreaChart.tsx
- base/src/components/charts/BarChart.tsx
- base/src/components/charts/chart-colors.test.ts
- base/src/components/charts/chart-colors.ts
- base/src/components/charts/ChartCard.tsx
- base/src/components/charts/charts.test.tsx
- … and 134 more
Mirrored from the author's public source. Install counts from the open skills registry.